{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "c2b7da21-f761-4b32-9b9e-f8985e2f8dc9",
   "metadata": {},
   "source": [
    "Ch15 NumPy常见基础运算\n",
    "# 常见运算\n",
    "Book_1《编程不难》 | 鸢尾花书：从加减乘除到机器学习  "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6096674a-fdbe-4c1c-8337-03766190b08b",
   "metadata": {},
   "source": [
    "## 导入包"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "14ac1471-23c1-4f10-af2d-fb89b126430e",
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "import math\n",
    "from matplotlib import cm \n",
    "import os\n",
    "\n",
    "# 如果文件夹不存在，创建文件夹\n",
    "if not os.path.isdir(\"Figures\"):\n",
    "    os.makedirs(\"Figures\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "cb1204b2-1f67-47e5-8b6b-890e797d193d",
   "metadata": {},
   "source": [
    "## 自定义函数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 122,
   "id": "51ab495d-f96b-4f57-807a-e0145fa142de",
   "metadata": {},
   "outputs": [],
   "source": [
    "def visualize_fx(x_array, y_array, title):\n",
    "    \n",
    "    fig, ax = plt.subplots(figsize=(4, 4))\n",
    "    ax.plot(x_array, y_array)\n",
    "    # ax.set_xlim(x_array.min(), x_array.max())\n",
    "    # ax.set_ylim(np.floor(y_array.min()), np.ceil(y_array.max()))\n",
    "    ax.set_xlim(-4, 4)\n",
    "    ax.set_ylim(-4, 4)    \n",
    "    ax.set_xticks(np.arange(-4,4+1,1))\n",
    "    ax.set_yticks(np.arange(-4,4+1,1))\n",
    "    ax.axhline(y = 0, color = 'k')\n",
    "    ax.axvline(x = 0, color = 'k')\n",
    "    # ax.spines['bottom'].set_position(('data',0))\n",
    "    # ax.spines['left'].set_position(('data',0))\n",
    "    # ax.spines['right'].set_color('none')\n",
    "    # ax.spines['top'].set_color('none')\n",
    "    \n",
    "    for tick in ax.xaxis.get_major_ticks():\n",
    "        tick.tick1line.set_visible(False)\n",
    "        tick.tick2line.set_visible(False)\n",
    "        tick.label1.set_visible(False)\n",
    "        tick.label2.set_visible(False)\n",
    "        \n",
    "    for tick in ax.yaxis.get_major_ticks():\n",
    "        tick.tick1line.set_visible(False)\n",
    "        tick.tick2line.set_visible(False)\n",
    "        tick.label1.set_visible(False)\n",
    "        tick.label2.set_visible(False)\n",
    "    plt.grid()\n",
    "    ax.set_aspect('equal', adjustable='box')\n",
    "    fig.savefig('Figures/' + title + '.svg', format='svg')\n",
    "\n",
    "\n",
    "def visualize_2D(array, title, vmax, vmin):\n",
    "    \n",
    "    fig_width  = math.ceil(array.shape[1] * 0.5)\n",
    "    fig_length = math.ceil(array.shape[0] * 0.5)\n",
    "    \n",
    "    fig, ax = plt.subplots(figsize=(fig_width, fig_length))\n",
    "    # 注意，seaborn.heatmap() 目前只能接受2D数组\n",
    "    # 本书中，一维数组可视化时用圆圈\n",
    "    # 可视化时，只有二维、三维数组用方块\n",
    "    \n",
    "    sns.heatmap(array, \n",
    "                vmax = vmax,\n",
    "                vmin = vmin,\n",
    "                annot = True,      # 增加注释\n",
    "                fmt = \".2f\",       # 注释数值的格式\n",
    "                square = True,     # 热图方格为正方形\n",
    "                cmap = 'RdYlBu_r', # 指定色谱\n",
    "                linewidths = .5,   # 方格线宽\n",
    "                cbar = False,      # 不显示色谱条\n",
    "                yticklabels=False, # 不显示纵轴标签\n",
    "                xticklabels=False, # 不显示横轴标签\n",
    "                ax = ax)           # 指定绘制热图的轴\n",
    "    \n",
    "    fig.savefig('Figures/' + title + '.svg', format='svg')\n",
    "\n",
    "# 定义绘制一元数组可视化函数\n",
    "\n",
    "def visualize_1D(array, title, vmax, vmin):\n",
    "    fig, ax = plt.subplots()\n",
    "    \n",
    "    cmap = plt.colormaps.get_cmap(\"RdYlBu\")\n",
    "    \n",
    "    array_norm = (array - vmin) / (vmax - vmin)\n",
    "\n",
    "    colors = cmap(array_norm)\n",
    "\n",
    "    for idx in range(len(array)):\n",
    "\n",
    "        circle_idx = plt.Circle((idx, 0), 0.5, facecolor=colors[idx], edgecolor = 'w')\n",
    "        ax.add_patch(circle_idx)\n",
    "        ax.text(idx, 0, s = \"{:.1f}\".format(array[idx]),\n",
    "                horizontalalignment = 'center',\n",
    "                verticalalignment = 'center')\n",
    "\n",
    "    ax.set_xlim(-0.6, 0.6 + len(array))\n",
    "    ax.set_ylim(-0.6, 0.6)\n",
    "    ax.set_aspect('equal', adjustable='box')\n",
    "    ax.axis('off')\n",
    "    fig.savefig('Figures/' + title + '.svg', format='svg')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0ab3ed23-e708-4ba6-aa5d-6515f054efe5",
   "metadata": {},
   "source": [
    "## 加减乘除、乘幂"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b979586f-3fbe-4662-b119-64ab8b23077d",
   "metadata": {},
   "source": [
    "### 一维"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6cedaea9-7acb-4d61-b536-15baa1f710ca",
   "metadata": {},
   "source": [
    "#### 定义数组"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "4a4c340b-1ae9-49ee-baf0-13cedf06726a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "a_1D = np.arange(-2,2+1)\n",
    "visualize_1D(a_1D, '一维数组', -4, 4)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "3c62f64f-65c5-47a1-ba64-ec5befc43042",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([2, 2, 2, 2, 2])"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "all_twos = 2*np.ones_like(a_1D)\n",
    "all_twos"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "id": "dc176830-566c-4cf8-8559-acacae1dd51c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([2, 2, 2, 2, 2])"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.full_like(a_1D, 2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "775d3b45-6b92-4515-b3da-43b34d14de90",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize_1D(all_twos, '一维数组，全2', -4, 4)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "78d135e9-c398-4c42-ace9-390e76390cd0",
   "metadata": {},
   "source": [
    "#### 加法"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "898deb61-aacf-4f9e-b07c-c832ebca8035",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0, 1, 2, 3, 4])"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a_1D + all_twos"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "e9f5302a-63a6-400f-a519-96617ed4b27b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize_1D(a_1D + all_twos, '一维数组，加法', -4, 4)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "9be8860f-569b-4155-a9e4-f4760ffe6a4b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0, 1, 2, 3, 4])"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.add(a_1D, all_twos)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "29ea730a-a004-4da5-adf5-e95cb15ac939",
   "metadata": {},
   "source": [
    "#### 减法"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "3aba7ab5-53a7-4f20-80a4-cc1c7d685d4f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([-4, -3, -2, -1,  0])"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a_1D - all_twos"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "55a8ab69-989e-4bbe-99d8-160f9cd0813f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize_1D(a_1D - all_twos, '一维数组，减法', -4, 4)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "ff967750-f2f0-4700-bdc1-945f840fb17a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([-4, -3, -2, -1,  0])"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.subtract(a_1D, all_twos)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "20410ec3-64c7-4365-81cb-99648cd1f6f0",
   "metadata": {},
   "source": [
    "#### 乘法"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "59600bb5-5e36-41e7-87fa-fea54a78374c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([-4, -2,  0,  2,  4])"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a_1D * all_twos"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "0479ec1f-e1f5-457a-8d6e-f1f8c06568f8",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize_1D(a_1D * all_twos, '一维数组，乘法', -4, 4)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "4046e0c7-77e9-4a6e-8d50-cbc742e4f42d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([-4, -2,  0,  2,  4])"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.multiply(a_1D, all_twos)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ada07a75-fcc2-4474-95a7-95b631263acf",
   "metadata": {},
   "source": [
    "#### 除法"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "522dc775-0371-4b27-b845-877d3940c3e9",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([-1. , -0.5,  0. ,  0.5,  1. ])"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a_1D/all_twos"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "2e587d32-31a8-4256-b44f-1fbbd2c5ffb3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize_1D(a_1D/all_twos, '一维数组，除法', -4, 4)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "236a454a-86a8-4f8e-b002-ddc395e9d7ce",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([-1. , -0.5,  0. ,  0.5,  1. ])"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.divide(a_1D, all_twos)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4da59507-0907-4bbc-88ca-4616db9a0533",
   "metadata": {},
   "source": [
    "#### 乘幂"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "9fa8a591-b79d-47b3-a9c3-bfb3f90d0e20",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([4, 1, 0, 1, 4])"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a_1D ** all_twos"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "530e9581-ef8c-421b-a1af-4237d50fdfd1",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize_1D(a_1D ** all_twos, '一维数组，乘幂', -4, 4)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "cd8f706f-3968-4588-86c3-84c44c0e69a0",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([4, 1, 0, 1, 4])"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.power(a_1D,all_twos)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8f5a9712-7c55-455c-a099-37f150daa9be",
   "metadata": {},
   "source": [
    "### 二维数组"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "id": "74436879-76af-4687-9e26-e6e342ee03dd",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 0.6391556 ,  0.95224626, -0.61295641, -0.48545067, -0.43084599,\n",
       "         0.87781143],\n",
       "       [-0.86419333, -0.19204597,  0.33640025,  0.94593556,  0.24107051,\n",
       "         0.21652763],\n",
       "       [ 0.34992486, -0.24471072,  0.11767816, -0.43756292,  0.0671183 ,\n",
       "         0.83192725],\n",
       "       [-0.68293344, -0.16157024, -0.66423099,  0.5000902 , -0.28232899,\n",
       "        -0.76968265]])"
      ]
     },
     "execution_count": 75,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a_2D = np.random.uniform(-1, 1, (4,6))\n",
    "a_2D"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 76,
   "id": "d71e7b24-f285-4df0-9eb4-c6953403cf3e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAACuCAYAAAAf8xDcAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAAADcklEQVR4nO3Wv4pdVRyG4XUmo2aiQ2SEDNqJilgoiKBNWhtLLXMD9pLKQiysgr03kFJLG9s0CiJoIaJip0zAYBhN4p9keQHnwDAMhy2+z1P/io8NL3ut5pxzAP9rO0sPALZP6BAgdAgQOgQIHQKEDgFChwChQ4DQIUDoELB7muP544fb2nEmq2feGQ9uXF16xpqdy9fGT8f3lp6x0dP758cvd24tPWPNkxcOxs27R0vP2OjS3uGYn7+79Iw1q9c+OPHGHx0ChA4BQocAoUOA0CFA6BAgdAgQOgQIHQKEDgFChwChQ4DQIUDoECB0CBA6BAgdAoQOAUKHAKFDgNAhQOgQIHQIEDoECB0ChA4BQocAoUOA0CFA6BAgdAgQOgQIHQKEDgFChwChQ4DQIWA155xLjwC2a/c0x18cHW9rx5m8erg/7vzzzdIz1lzYfXHMW9eXnrHR6uDKeHDj6tIz1uxcvjbG8cdLz9hs/60xfv9k6RXrHnvzxBNPdwgQOgQIHQKEDgFChwChQ4DQIUDoECB0CBA6BAgdAoQOAUKHAKFDgNAhQOgQIHQIEDoECB0ChA4BQocAoUOA0CFA6BAgdAgQOgQIHQKEDgFChwChQ4DQIUDoECB0CBA6BAgdAoQOAas551x6BLBdu6c5nreub2vHmawOrozjv79desaa/YdeGOPPT5eesdkjb4ybd4+WXrHm0t7hGPc/W3rGZudeH/PL95ZesWb1yvsn3ni6Q4DQIUDoECB0CBA6BAgdAoQOAUKHAKFDgNAhQOgQIHQIEDoECB0ChA4BQocAoUOA0CFA6BAgdAgQOgQIHQKEDgFChwChQ4DQIUDoECB0CBA6BAgdAoQOAUKHAKFDgNAhQOgQIHQIEDoErOacc+kRwHbtnub4u9/ubmvHmTz/+N64d/+rpWesOX/u5fH97f/mN3vu4t6YP3+09Iw1q6feHrf/+mHpGRtdfPjZ8fWvfyw9Y81LTzx64o2nOwQIHQKEDgFChwChQ4DQIUDoECB0CBA6BAgdAoQOAUKHAKFDgNAhQOgQIHQIEDoECB0ChA4BQocAoUOA0CFA6BAgdAgQOgQIHQKEDgFChwChQ4DQIUDoECB0CBA6BAgdAoQOAUKHgNWccy49Atguf3QIEDoECB0ChA4BQocAoUOA0CFA6BAgdAj4F1Z2WUzklUOqAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 300x200 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize_2D(a_2D, '二维数组', 3, -3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "id": "5abbc551-73c2-4b65-9859-24d3f386e1de",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[2., 2., 2., 2., 2., 2.],\n",
       "       [2., 2., 2., 2., 2., 2.],\n",
       "       [2., 2., 2., 2., 2., 2.],\n",
       "       [2., 2., 2., 2., 2., 2.]])"
      ]
     },
     "execution_count": 61,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "all_twos_2D = np.full_like(a_2D, 2)\n",
    "all_twos_2D"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 86,
   "id": "fbaf51c5-af71-49d2-a406-f01612c4ac7c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAACuCAYAAAAf8xDcAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAAACqklEQVR4nO3WQa3rMBRFUeerFEKmSAoxSEKmIPwhVFUVxXp7rfEdnMmWvc055wD+tH93DwCuJ3QIEDoECB0ChA4BQocAoUOA0CFA6BAgdAh4fHP8fj2v2vGT/TiX3LbqrjHW3bbqrjHW3bYf58cbLzoECB0ChA4BQocAoUOA0CFA6BAgdAgQOgQIHQKEDgFChwChQ4DQIUDoECB0CBA6BAgdAoQOAUKHAKFDgNAhQOgQIHQIEDoECB0ChA4BQocAoUOA0CFA6BAgdAgQOgQIHQKEDgFChwChQ8A255x3jwCu9fjm+P16XrXjJ/txLrlt1V1jrLtt1V1jrLttP86PN77uECB0CBA6BAgdAoQOAUKHAKFDgNAhQOgQIHQIEDoECB0ChA4BQocAoUOA0CFA6BAgdAgQOgQIHQKEDgFChwChQ4DQIUDoECB0CBA6BAgdAoQOAUKHAKFDgNAhQOgQIHQIEDoECB0CtjnnvHsEcK3HN8fv1/OqHT/Zj3PJbavuGmPdbavuGmPdbftxfrzxdYcAoUOA0CFA6BAgdAgQOgQIHQKEDgFChwChQ4DQIUDoECB0CBA6BAgdAoQOAUKHAKFDgNAhQOgQIHQIEDoECB0ChA4BQocAoUOA0CFA6BAgdAgQOgQIHQKEDgFChwChQ4DQIUDoECB0CNjmnPPuEcC1Ht8cv1/Pq3b8ZD/OJbetumuMdbetumuMdbftx/nxxtcdAoQOAUKHAKFDgNAhQOgQIHQIEDoECB0ChA4BQocAoUOA0CFA6BAgdAgQOgQIHQKEDgFChwChQ4DQIUDoECB0CBA6BAgdAoQOAUKHAKFDgNAhQOgQIHQIEDoECB0ChA4BQocAoUPANuecd48AruVFhwChQ4DQIUDoECB0CBA6BAgdAoQOAUKHgP9d3V1MM+35bQAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 300x200 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize_2D(all_twos_2D, '二维，全2', 3, -3)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5e3e77fa-615b-48b1-bb1d-de17957077e5",
   "metadata": {},
   "source": [
    "#### 加法"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 77,
   "id": "a8f3d581-17d3-4fd8-b806-81c71c6a8cbf",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[2.6391556 , 2.95224626, 1.38704359, 1.51454933, 1.56915401,\n",
       "        2.87781143],\n",
       "       [1.13580667, 1.80795403, 2.33640025, 2.94593556, 2.24107051,\n",
       "        2.21652763],\n",
       "       [2.34992486, 1.75528928, 2.11767816, 1.56243708, 2.0671183 ,\n",
       "        2.83192725],\n",
       "       [1.31706656, 1.83842976, 1.33576901, 2.5000902 , 1.71767101,\n",
       "        1.23031735]])"
      ]
     },
     "execution_count": 77,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a_2D + all_twos_2D"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 78,
   "id": "9bf8b73e-c063-4030-857e-f72436ff32aa",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAACuCAYAAAAf8xDcAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAAADgElEQVR4nO3WMWudZRyH4Tc1IRDUXUTEQVN1UIfSyUEL4lAhChYHQbciuBWEfoKC0E2QbgoOUkELdhChOjiVDuqgNjqIiLirBELU1w9wDoQQDk/xvq75P/w4nJv3WZvneZ6A/7UTowcAqyd0CBA6BAgdAoQOAUKHAKFDgNAhQOgQIHQIWD/K8VcPnFzVjmN5+tfb09WN7dEzFpw72J0OrrwyesZSG+c/nPYvvzR6xoLNCx9P+5d2Rs9YavPitena1p33P9vZ2z30xhcdAoQOAUKHAKFDgNAhQOgQIHQIEDoECB0ChA4BQocAoUOA0CFA6BAgdAgQOgQIHQKEDgFChwChQ4DQIUDoECB0CBA6BAgdAoQOAUKHAKFDgNAhQOgQIHQIEDoECB0ChA4BQocAoUOA0CFgbZ7nefQIYLXWj3L87/Xzq9pxLCfOXpn+evPM6BkL7n7nxvTT6cdHz1jq4ZvfTVc3tkfPWHDuYHf6+ZknRs9Y6qEvv51+OfPk6BkLHrzxzaE3nu4QIHQIEDoECB0ChA4BQocAoUOA0CFA6BAgdAgQOgQIHQKEDgFChwChQ4DQIUDoECB0CBA6BAgdAoQOAUKHAKFDgNAhQOgQIHQIEDoECB0ChA4BQocAoUOA0CFA6BAgdAgQOgQIHQLW5nmeR48AVmv9KMc/nnpsVTuO5ZFb3097F54bPWPB1uXPp99eODV6xlL3f3pr2r+0M3rGgs2L16bfXzw9esZS931yc7p+7/boGQvO/rF76I2nOwQIHQKEDgFChwChQ4DQIUDoECB0CBA6BAgdAoQOAUKHAKFDgNAhQOgQIHQIEDoECB0ChA4BQocAoUOA0CFA6BAgdAgQOgQIHQKEDgFChwChQ4DQIUDoECB0CBA6BAgdAoQOAUKHAKFDwNo8z/PoEcBqrR/l+O/3X13VjmNZf+2D6c83nh09Y8E9735xR/9mXz96cvSMBU/9cHvae+v50TOW2nr7s+mfj14fPWPBXS+/d+iNpzsECB0ChA4BQocAoUOA0CFA6BAgdAgQOgQIHQKEDgFChwChQ4DQIUDoECB0CBA6BAgdAoQOAUKHAKFDgNAhQOgQIHQIEDoECB0ChA4BQocAoUOA0CFA6BAgdAgQOgQIHQKEDgFCh4C1eZ7n0SOA1fJFhwChQ4DQIUDoECB0CBA6BAgdAoQOAUKHgP8AWaVdTLC8j10AAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 300x200 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize_2D(a_2D + all_twos_2D, '二维加法', 3, -3)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e1ab7cbe-6d15-40d6-b54c-b3c691bee1ae",
   "metadata": {},
   "source": [
    "#### 减法"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "id": "8f5bc863-8dbe-46d2-90c2-787adcc57bb1",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[-1.43646641, -2.97549686, -1.6880573 , -2.68677732, -2.87147646,\n",
       "        -2.44475814],\n",
       "       [-1.17020027, -2.73179726, -1.22898272, -1.34564713, -2.12286432,\n",
       "        -2.33653862],\n",
       "       [-1.74769853, -2.33826076, -1.12947727, -2.62675825, -1.72857763,\n",
       "        -1.22995091],\n",
       "       [-1.19062451, -1.97619001, -1.94987926, -2.54738284, -1.34135024,\n",
       "        -2.25476876]])"
      ]
     },
     "execution_count": 64,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a_2D - all_twos_2D"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 79,
   "id": "2452ff64-fb93-45c6-b2c3-29b7d92d8270",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAACuCAYAAAAf8xDcAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAAADiElEQVR4nO3WP6vWZRzH8d+J8wikxhCkwaUWKQiM/tnBRTGHLBtcnAoqAnEJEWkRISqoycVBywYTzyIn+0dCULjU4hCCNBY+hV8P4L7hcDjcXND79Zq/w2d5c11r8zzPE/C/9tjoAcDqCR0ChA4BQocAoUOA0CFA6BAgdAgQOgQIHQLWd3J8+d7fq9qxK6cPPDltPXw0esaCjb17phdPXR89Y6mfr5yYXnn35ugZC3744tj02oebo2cs9d0nR6bNB/+OnrHgyL7Ht73xokOA0CFA6BAgdAgQOgQIHQKEDgFChwChQ4DQIUDoECB0CBA6BAgdAoQOAUKHAKFDgNAhQOgQIHQIEDoECB0ChA4BQocAoUOA0CFA6BAgdAgQOgQIHQKEDgFChwChQ4DQIUDoECB0CBA6BKzN8zyPHgGs1vpOjp979fKqduzKb9+fnt64+OPoGQu+OfvydOH2/dEzljp3eP+09fDR6BkLNvbumc7e/HP0jKUuHnt6OnPjj9EzFlw6/sy2N77uECB0CBA6BAgdAoQOAUKHAKFDgNAhQOgQIHQIEDoECB0ChA4BQocAoUOA0CFA6BAgdAgQOgQIHQKEDgFChwChQ4DQIUDoECB0CBA6BAgdAoQOAUKHAKFDgNAhQOgQIHQIEDoECB0C1uZ5nkePAFZrfSfHF27fX9WOXTl3eP90/OM7o2csuPHRoem9q/dGz1jq87cPTIc+uDV6xoI7nx6d3rny++gZS3156tnp27/+GT1jwetPPbHtja87BAgdAoQOAUKHAKFDgNAhQOgQIHQIEDoECB0ChA4BQocAoUOA0CFA6BAgdAgQOgQIHQKEDgFChwChQ4DQIUDoECB0CBA6BAgdAoQOAUKHAKFDgNAhQOgQIHQIEDoECB0ChA4BQocAoUPA2jzP8+gRwGqt7+T44Ilrq9qxK3evn5zevPTT6BkLvj7z0vTCya9Gz1jql2tvTZ/dfTB6xoL3D+6bjp7fGj1jqVvnN6bnj1wZPWPBr5untr3xdYcAoUOA0CFA6BAgdAgQOgQIHQKEDgFChwChQ4DQIUDoECB0CBA6BAgdAoQOAUKHAKFDgNAhQOgQIHQIEDoECB0ChA4BQocAoUOA0CFA6BAgdAgQOgQIHQKEDgFChwChQ4DQIUDoELA2z/M8egSwWl50CBA6BAgdAoQOAUKHAKFDgNAhQOgQIHQI+A9/iV1MFNKgHgAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 300x200 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize_2D(a_2D - all_twos_2D, '二维减法', 3, -3)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e2d38c49-bb1c-4dce-b2db-cffa2507b7d4",
   "metadata": {},
   "source": [
    "#### 乘法"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 80,
   "id": "7a228630-0bc2-4926-832f-21a2301209ba",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 1.2783112 ,  1.90449252, -1.22591282, -0.97090134, -0.86169198,\n",
       "         1.75562287],\n",
       "       [-1.72838666, -0.38409195,  0.67280051,  1.89187111,  0.48214102,\n",
       "         0.43305527],\n",
       "       [ 0.69984971, -0.48942143,  0.23535633, -0.87512584,  0.13423659,\n",
       "         1.6638545 ],\n",
       "       [-1.36586688, -0.32314047, -1.32846198,  1.0001804 , -0.56465798,\n",
       "        -1.53936529]])"
      ]
     },
     "execution_count": 80,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a_2D * all_twos_2D"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 81,
   "id": "6a3cc6f4-f5c5-4efe-8b61-a60f86f36609",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAACuCAYAAAAf8xDcAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAAADhUlEQVR4nO3WQaumYxzH8fsZJ8xkdEjGNFiIJAsLJbs5KwuyslAW0jR5ASY2spINjRegaZoslIWVWFjN7KQsLCSRBaYxEpPRDIrbC7ifOp1OT1f5fj7r/+K3+XZdq3me5wn4XzswegCweUKHAKFDgNAhQOgQIHQIEDoECB0ChA4BQoeArb0c//Pe85vasS83PPfu9NuJ46NnLNx29sL0/leXR89Y69mHjkznf7wyesbCzt3b02eXr46esdZjRw5P1049MXrGwqHTn+x640WHAKFDgNAhQOgQIHQIEDoECB0ChA4BQocAoUOA0CFA6BAgdAgQOgQIHQKEDgFChwChQ4DQIUDoECB0CBA6BAgdAoQOAUKHAKFDgNAhQOgQIHQIEDoECB0ChA4BQocAoUOA0CFA6BAgdAhYzfM8jx4BbNbWXo5f/fDLTe3Ylzeefnj65c+Lo2cs3HHzsWn+5q3RM9ZaPfDydOXkzugZC9tnzk/zpXdGz1hrdfTFaf757OgZC6s7T+x64+sOAUKHAKFDgNAhQOgQIHQIEDoECB0ChA4BQocAoUOA0CFA6BAgdAgQOgQIHQKEDgFChwChQ4DQIUDoECB0CBA6BAgdAoQOAUKHAKFDgNAhQOgQIHQIEDoECB0ChA4BQocAoUOA0CFgNc/zPHoEsFlbezmev35zUzv2ZfXgK9Ola7+OnrFw9NDt03T1g9Ez1jv8zPTpT7+PXrHw+F23TtNfH4+esd5NT07XX3tq9IqFg69/tOuNrzsECB0ChA4BQocAoUOA0CFA6BAgdAgQOgQIHQKEDgFChwChQ4DQIUDoECB0CBA6BAgdAoQOAUKHAKFDgNAhQOgQIHQIEDoECB0ChA4BQocAoUOA0CFA6BAgdAgQOgQIHQKEDgFChwChQ8Bqnud59Ahgs7b2cnzm8x82tWNfTj56z3Tl7+9Gz1jYvvG+6dwXF0fPWOuFR45N/55/afSMhQM7b0/f/3F99Iy17r3l4HT6wrejZyycOn7/rje+7hAgdAgQOgQIHQKEDgFChwChQ4DQIUDoECB0CBA6BAgdAoQOAUKHAKFDgNAhQOgQIHQIEDoECB0ChA4BQocAoUOA0CFA6BAgdAgQOgQIHQKEDgFChwChQ4DQIUDoECB0CBA6BAgdAlbzPM+jRwCb5UWHAKFDgNAhQOgQIHQIEDoECB0ChA4BQoeA/wCYsltMRD42kwAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 300x200 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize_2D(a_2D * all_twos_2D, '二维乘法', 3, -3)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "dd19b58c-7d07-45c7-bdd9-64181ea5f10d",
   "metadata": {},
   "source": [
    "#### 除法"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 82,
   "id": "27ec27f6-2efd-4f3d-a198-dcd7e4fdcc29",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 0.3195778 ,  0.47612313, -0.30647821, -0.24272534, -0.21542299,\n",
       "         0.43890572],\n",
       "       [-0.43209666, -0.09602299,  0.16820013,  0.47296778,  0.12053525,\n",
       "         0.10826382],\n",
       "       [ 0.17496243, -0.12235536,  0.05883908, -0.21878146,  0.03355915,\n",
       "         0.41596362],\n",
       "       [-0.34146672, -0.08078512, -0.33211549,  0.2500451 , -0.1411645 ,\n",
       "        -0.38484132]])"
      ]
     },
     "execution_count": 82,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a_2D / all_twos_2D"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 83,
   "id": "299bfa39-6994-4f40-972d-40fee40cb726",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAACuCAYAAAAf8xDcAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAAADXklEQVR4nO3WPYtdVRiG4XVmTpwMJBBEI8FG7CSVIGIvgqRIY2UnFvlRKcTOyiaFCGIvIlgFO7GRYBQJJDAZ52P5A86BYRgOW7yvq36Lhw03e63mnHMA/2t7Sw8Adk/oECB0CBA6BAgdAoQOAUKHAKFDgNAhQOgQsL7M8Xz21a52XMnq1qdjPnm49IwNqzsPxrN/fl16xla3Xnl7PD/5ZekZG25ee2e8OH289Iytbqzvjvn0i6VnbFjd/vzCG390CBA6BAgdAoQOAUKHAKFDgNAhQOgQIHQIEDoECB0ChA4BQocAoUOA0CFA6BAgdAgQOgQIHQKEDgFChwChQ4DQIUDoECB0CBA6BAgdAoQOAUKHAKFDgNAhQOgQIHQIEDoECB0ChA4BQoeA1ZxzLj0C2K31ZY6fHv2xqx1XcvvwjXFy/uPSMzZc23t/jKNHS8/Y7vD+mE8eLr1iw+rOgzGOv1l6xnYH98Y4+XbpFZuufXzhiac7BAgdAoQOAUKHAKFDgNAhQOgQIHQIEDoECB0ChA4BQocAoUOA0CFA6BAgdAgQOgQIHQKEDgFChwChQ4DQIUDoECB0CBA6BAgdAoQOAUKHAKFDgNAhQOgQIHQIEDoECB0ChA4BQoeA1ZxzLj0C2K31pa6PHu1oxhUd3h/HZz8tvWLDwf57Y5x9t/SM7fY/Gi9OHy+9YsON9d0xzr9fesZ2ex+O+eeXS6/YsHr9swtvPN0hQOgQIHQIEDoECB0ChA4BQocAoUOA0CFA6BAgdAgQOgQIHQKEDgFChwChQ4DQIUDoECB0CBA6BAgdAoQOAUKHAKFDgNAhQOgQIHQIEDoECB0ChA4BQocAoUOA0CFA6BAgdAgQOgQIHQJWc8659Ahgt9aXOf77+LcdzbiaVw/eGqfnPyw9Y8N674P/9Dcbz79eesamm5+Ml2c/L71iq+v7746/Xv6+9IwNr11/88IbT3cIEDoECB0ChA4BQocAoUOA0CFA6BAgdAgQOgQIHQKEDgFChwChQ4DQIUDoECB0CBA6BAgdAoQOAUKHAKFDgNAhQOgQIHQIEDoECB0ChA4BQocAoUOA0CFA6BAgdAgQOgQIHQKEDgGrOedcegSwW/7oECB0CBA6BAgdAoQOAUKHAKFDgNAhQOgQ8C/Zx1ZMte1BxAAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 300x200 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize_2D(a_2D / all_twos_2D, '二维除法', 3, -3)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4383eb04-267b-4b75-be6c-593c088492a2",
   "metadata": {},
   "source": [
    "#### 乘幂"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "id": "25f79109-e90a-4a9b-8bed-aeb8b0697f21",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[0.40851988, 0.90677294, 0.37571556, 0.23566235, 0.18562827,\n",
       "        0.77055291],\n",
       "       [0.74683011, 0.03688166, 0.11316513, 0.89479408, 0.05811499,\n",
       "        0.04688422],\n",
       "       [0.12244741, 0.05988333, 0.01384815, 0.19146131, 0.00450487,\n",
       "        0.69210295],\n",
       "       [0.46639808, 0.02610494, 0.4412028 , 0.25009021, 0.07970966,\n",
       "        0.59241138]])"
      ]
     },
     "execution_count": 84,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a_2D ** all_twos_2D"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 85,
   "id": "a08fca45-8969-438d-ac75-b5b3bcc06925",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAACuCAYAAAAf8xDcAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAAADSklEQVR4nO3WMYtdVRiG0X1mRkQhnYqdpYXYp5UQEQsR0otIejshYikG7OxFxD4gFiKGYJteLCztRO0Cimhm+wPOhWEYLjv4rFV/xcuBh7O3OeccwP/ayeoBwPEJHQKEDgFChwChQ4DQIUDoECB0CBA6BAgdAs4uczx///JIM65me/7dcf7wzuoZOyfX7475x1erZxy0PffOGI/urZ6xd+3WGH99s3rFYc+8NeaPH69esbO9+tGFN/7oECB0CBA6BAgdAoQOAUKHAKFDgNAhQOgQIHQIEDoECB0ChA4BQocAoUOA0CFA6BAgdAgQOgQIHQKEDgFChwChQ4DQIUDoECB0CBA6BAgdAoQOAUKHAKFDgNAhQOgQIHQIEDoECB0ChA4B25xzrh4BHNfZZY7nT58ca8eVbK98OMb5g9Uz9k5ujPHPd6tXHPbUG+P84Z3VK3ZOrt8d4/H91TMOO735ZG47vXnhiac7BAgdAoQOAUKHAKFDgNAhQOgQIHQIEDoECB0ChA4BQocAoUOA0CFA6BAgdAgQOgQIHQKEDgFChwChQ4DQIUDoECB0CBA6BAgdAoQOAUKHAKFDgNAhQOgQIHQIEDoECB0ChA4BQoeAbc45V48AjuvsUtd/f3ukGVf09JtjPL6/esXe6c0x5g+rVxy2vTbGn1+vXrH37NtP9DebP3+6esXO9vIHF954ukOA0CFA6BAgdAgQOgQIHQKEDgFChwChQ4DQIUDoECB0CBA6BAgdAoQOAUKHAKFDgNAhQOgQIHQIEDoECB0ChA4BQocAoUOA0CFA6BAgdAgQOgQIHQKEDgFChwChQ4DQIUDoECB0CBA6BGxzzrl6BHBcZ5c5nr9+fqwdV7K9eHuM8werZ+yd3Bjzty9Wrzhoe+G9MR7dWz1j79qtMf79fvWKw85eH/OXz1av2Nleev/CG093CBA6BAgdAoQOAUKHAKFDgNAhQOgQIHQIEDoECB0ChA4BQocAoUOA0CFA6BAgdAgQOgQIHQKEDgFChwChQ4DQIUDoECB0CBA6BAgdAoQOAUKHAKFDgNAhQOgQIHQIEDoECB0ChA4B25xzrh4BHJc/OgQIHQKEDgFChwChQ4DQIUDoECB0CBA6BPwHZSlPTOb1OTMAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 300x200 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize_2D(a_2D ** all_twos_2D, '二维乘幂', 3, -3)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d467a732-1c65-4c03-8f37-313e035e0458",
   "metadata": {},
   "source": [
    "## 广播原则"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "404e79ce-7cc5-4e36-9034-e6696d87c9d5",
   "metadata": {},
   "source": [
    "### 一维"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "0a5eeceb-3941-432d-ac22-c78a4ce352ca",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0, 1, 2, 3, 4])"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a_1D + 2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "540f3e1e-24a7-4bb4-9631-17cb070beb6b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([-4, -3, -2, -1,  0])"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a_1D - 2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "c7c95178-aae2-4327-94bd-c9f2cfe64b7b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([-4, -2,  0,  2,  4])"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a_1D * 2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "25911a93-41f5-44c6-a0fa-e3e3f71479d9",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([-1. , -0.5,  0. ,  0.5,  1. ])"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a_1D / 2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "0fbc7e93-3f56-4674-a81f-515ca4042ae5",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([4, 1, 0, 1, 4])"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a_1D ** 2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "cc179df1-97c9-460e-a2bc-a711bb138a04",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0, 1, 0, 1, 0], dtype=int32)"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a_1D % 2"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2bc614ae-b190-4fb8-bfbf-69fb039c7b58",
   "metadata": {},
   "source": [
    "### 一维数组、列向量运算"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 106,
   "id": "fac38621-d8f3-4c96-bffd-a51c07f468c7",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAEcAAACuCAYAAABk+xBVAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAESElEQVR4nO3bf2jUdRzH8df3fnQ35nW4Sp0E54aWpVQiDWq6/tBCqEGJf0kiKpKEFBhG/RGFmmnQHw1BTJeISEIQODGCjPpHKCaKsjk0ujl1c3pLyrnd3P349IdwdKYvdn/c3p/w9fjvO75/vHjuc3dwPwLnnIPcU8h6gM8Uh1AcQnEIxSEUh1AcQnEIxSEUh4hUcrPr+7JaOyZVkHp3Qvfp5BCKQygOoTiE4hCKQygOoTiE4hCKQygOoTiE4hCKQygOoTiE4hCKQ1T0Nmm1dJ4dQPu3p9H9ewaZG6PY9fEyLG1utJ7lx8nJjuUwt/FRfLRxsfWUMl6cnJamFFqaUtYz/sOLk+MrxSEUh1AcQnEIL16tRrI5XBr4u3R9ZXAYPX8MIZmIYea0hNkuL+J0XbiO1ZuPlK537DkBAHj95SexY/MSq1kIKvkesr5IICWKQygOoTiE4hCKQygOoTiE4hCKQygOoTiE4hCKQygOoTiE4hCKQygOoThERW+wP2gq+mim+N2aau2YVKHl+yd2X5V3/K8pDqE4hOIQikMoDqE4hOIQikMoDqE4hOIQikMoDqE4hOIQikMoDmH+DfavfrmCH7v+RDqTRTwawoLUw3hvWQoNj9VYT7M/OZ3pm1j5Qj0Ov/0M2tfNQ77gsO7rboyOF6yn2Z+cvWufLrvevmI2mj/tRHf/LTzfkDRadYf5ybnb8FgeAJCsMf+/+RXHOYed31/EwlkJPDGj1nqO/cPq37Z29OL81VEc2jDfegoAj07Oto40fu65gQPr52FGMmY9B4AHJ8c5h20dvTh+7k6Yx+vi1pNKzONsOZLGsTND2LVqLmpjYWSGxwEAiXgY8WjYdJt5nMO/XQMArN7bXfb37Stm442F0ywmlZjH6fnsResJ9+XNE7KPFIdQHEJxCMUhFIdQHEJxCMUhFIdQHEJxCMUhFIdQHEJxCMUhFIdQHEJxCMUh9BtPoqKPZkbeWVqtHZOqtu34hO7Tw4pQHEJxCMUhFIdQHEJxCMUhFIdQHEJxCMUhFIdQHEJxCMUhFIcw/5J2ZFEros2tCB6ZDgAoXu1D7oeDKPR0Gi/zII77K4Pxo/tQzPQDACJNryC2fguyn2+AG+wz3WYep9D1a9l17th+RBe1IjzrKeQf9DhlghDCC1qAWByFi+es1/gRJ6hvQM2mNiDyEHA7i9v7PoEbvGQ9y4847vplZHe+haBmCsLPLUbszfeRbdtkHsiPl/JCHm5oAMXLF5A72o5ifxrRl5Zbr/Ikzr1EotYL7ONEX1uLUON8BHXTEdQ3IPrqGoTmPIv8yZ+sp9k/5wSJqYit+gBBsg7IjqA40Iux3R+ieP6U9TT7OOPffGE94b7MH1Y+UxxCcQjFIRSHUBxCcQjFIRSHUBxCcQjFIRSHUBxCcQjFIRSHUBxCcQjFIRSH0M8YCZ0cQnEIxSEUh1AcQnEIxSEUh1Ac4h+H0eXmI3zzuwAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 100x200 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize_2D(np.array([[1], [2], [3]]), '列向量，二维', 5, -5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 97,
   "id": "6f297288-67e6-4e01-88d7-896fbbbf179a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[-1,  0,  1,  2,  3],\n",
       "       [ 0,  1,  2,  3,  4],\n",
       "       [ 1,  2,  3,  4,  5]])"
      ]
     },
     "execution_count": 97,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a_1D + np.array([[1], [2], [3]])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 108,
   "id": "7f3373df-7bed-4872-aada-058ddf35ab64",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 300x200 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize_2D(a_1D + np.array([[1], [2], [3]]), '一维数组、列向量运算，加法', 5, -5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 88,
   "id": "f942201d-68b1-4695-9e12-8f212c2c81bc",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[-2, -1,  0,  1,  2],\n",
       "       [-4, -2,  0,  2,  4],\n",
       "       [-6, -3,  0,  3,  6]])"
      ]
     },
     "execution_count": 88,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a_1D * np.array([[1], [2], [3]])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 109,
   "id": "160acac6-48f2-499b-ad73-b6f1e7a1bcb3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 300x200 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize_2D(a_1D * np.array([[1], [2], [3]]), '一维数组、列向量运算，乘法', 5, -5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 89,
   "id": "dad4a8e5-9a39-4481-b0f5-aed2af7e1508",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[-2, -1,  0,  1,  2],\n",
       "       [ 4,  1,  0,  1,  4],\n",
       "       [-8, -1,  0,  1,  8]])"
      ]
     },
     "execution_count": 89,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a_1D ** np.array([[1], [2], [3]])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 110,
   "id": "495646f0-bddf-4a69-9141-7f9b14f1c826",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 300x200 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize_2D(a_1D ** np.array([[1], [2], [3]]), '一维数组、列向量运算，乘幂', 5, -5)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "06fdde68-ddca-47f6-a433-937e3a1bb586",
   "metadata": {},
   "source": [
    "### 二维数组和标量"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2288b3b1-8cde-47ec-8ada-2edf09aaa607",
   "metadata": {},
   "source": [
    "#### 加法"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 112,
   "id": "b39b1bbe-7562-4f65-b7e4-4bc683b9b1bb",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[2.6391556 , 2.95224626, 1.38704359, 1.51454933, 1.56915401,\n",
       "        2.87781143],\n",
       "       [1.13580667, 1.80795403, 2.33640025, 2.94593556, 2.24107051,\n",
       "        2.21652763],\n",
       "       [2.34992486, 1.75528928, 2.11767816, 1.56243708, 2.0671183 ,\n",
       "        2.83192725],\n",
       "       [1.31706656, 1.83842976, 1.33576901, 2.5000902 , 1.71767101,\n",
       "        1.23031735]])"
      ]
     },
     "execution_count": 112,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a_2D + 2"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "52184adb-3df2-4cb5-8770-e698b1f33ff0",
   "metadata": {},
   "source": [
    "### 二维数组和一维数组"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 116,
   "id": "cc78e5ef-32cb-4b3b-b116-9ffa6b033151",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([-1. , -0.6, -0.2,  0.2,  0.6,  1. ])"
      ]
     },
     "execution_count": 116,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.linspace(-1,1,6)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 120,
   "id": "1df50b1d-1d9f-4005-9aed-50dc24e03b1b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize_1D(np.linspace(-1,1,6), '一维数组，6个元素', -4, 4)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 117,
   "id": "955cff1c-9219-424e-9229-67f747fcd901",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[-0.3608444 ,  0.35224626, -0.81295641, -0.28545067,  0.16915401,\n",
       "         1.87781143],\n",
       "       [-1.86419333, -0.79204597,  0.13640025,  1.14593556,  0.84107051,\n",
       "         1.21652763],\n",
       "       [-0.65007514, -0.84471072, -0.08232184, -0.23756292,  0.6671183 ,\n",
       "         1.83192725],\n",
       "       [-1.68293344, -0.76157024, -0.86423099,  0.7000902 ,  0.31767101,\n",
       "         0.23031735]])"
      ]
     },
     "execution_count": 117,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a_2D + np.linspace(-1,1,6)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 123,
   "id": "77e4a8b8-fa99-4cce-85ab-2bb3f6913151",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 300x200 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize_2D(a_2D + np.linspace(-1,1,6), '二维数组和一维数组，加法', 5, -5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 134,
   "id": "e7c1e279-7a6a-4ff2-b0df-2defc7327a69",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[-1. , -0.6, -0.2,  0.2,  0.6,  1. ]])"
      ]
     },
     "execution_count": 134,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 行向量\n",
    "np.linspace(-1,1,6).reshape(1,-1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 137,
   "id": "5d50989c-46fb-49fe-a7b2-56e6ced7c385",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 300x100 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize_2D(np.linspace(-1,1,6).reshape(1,-1), '行向量，6个元素', 5, -5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 135,
   "id": "f0fecd1a-7dfb-41b7-8450-3cf5dc68ae90",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAACuCAYAAAAf8xDcAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAABATElEQVR4nO29d1RU1/u+fQHSVcoA0qSD0u1d7N0YazSxxF4SW9TYe8Oe2BVExd5QVOwlauy9YYuV3qv0Mu8fEwdHQMD4SX7fd/a11qzF2fM8+9xzztxnl8OcrSKVSqUIBIL/X6P6XwsQCAT/e4TRBQIlQBhdIFAChNEFAiVAGF0gUAKE0QUCJUAYXSBQAoTRBQIlQBhdIFAChNEFAiWgXFmC3+cG/690/CPKl3OF9wf/axmFKd+VyPSE/1pFkZjpGJKR++C/llEI7XKekHPyv5ZRNOptyQ8a9l+rKIRqx40lx/wLOgQCwX+MMLpAoAQIowsESoAwukCgBAijCwRKgDC6QKAECKMLBEqAMLpAoAQIowsESoAwukCgBAijCwRKQJn+1704pFIpPuv2cnD/GVJT0nDzcGTS9CHYO1gVm3P+zHU2+wYQGhJJbm4eVlZm9OnfiQ6dmirExUTHs2rFdq7+eZfMrGysrc2ZOe9nnF3tS9S1c981/Lb/SWxcKo52Jkyd0JFa1W2LjL197y3LVp/kzdsYMjJzMDc1oFe3OvTv3Ugec/DIHabMOVAo9+HVuWhqqpeo52OkUilbN/oRFHCY1NQUnN1cGTtlArb2dp/N279zD0f2HyI6Kgo9fX2atGzGkFEj0NTUBODBnXvs2baTF0+eEx8Xx7wVi2jcrEmZdG1Yt5+D+8+RkvIeNw9HpkwfhIND5WJzAvafJejIJV6+DAXAxcWOkWO+x93DQR6TlpbB2lV7+ePcTRISkqnibMvEyf1xc3cortpC7NzzJ35bzhMbm4KjgylTJ3WlVs2ivwcxscksXhrI4ydhvHsXS9/eXkyb3FUhpm//1dy8/bJQbpPGLvisL93/tN96lcTmC6EEh6USm5LN6v6utHQ3/mzO0TvR+P0Rwru4DMprlaNxVUN+/cYeA92C75D/pVD2XI0gMjELA111WnsaM669LZrqaqXS9Slfxej+fofY6X+U2QtGYWVjht/GA/w0eA4Hj61BV1e7yJyKeuUZOLQbtraWlFMvx58XbzNn+hoMDPVo0Kg6ACnJ7xnYZyq16rixasMMDCV6hIVGUb6Cbomajp9+iPfyY8ya/C01qlmzJ+AGQ0Zt5dj+XzA30y8Ur6OtQZ/v6lHF0QxtbQ3u3H/LrAWH0NbWoGfXOvK48rqanDw4XiG3rCYH2L11B/t37GbynBlYWldmu+9WJgwfw/bAPejoFv35zhw/hc+q9UyaPRVXTw/C3oWwaOZ8AEZOGAtAZkYm9k6OtOvUkZkTppRZ11a/w+zwP8bcBT9hbWOG78aDjBg8n8Bjvxd7Lm/fekLb9g3xrFYFTU11tm4+zIih8wk4vIJKlQwBmDNzAy//CmX+opEYGxtyLOgSwwfPI+DIb/KYz3H8xF28Fx1i1vQe1Khuy579VxkyfAPHjkzB3KxwfnZ2LgYG5RkxpBVbt18oss7VKweSk5Mn305KSuPbbkto26ZaiXo+kJGdRxVzXbrUNmWMf8k/+rrzOonJu58y+VsHmrlIiE7OYnbAC2bse86aAW6A7EKw4thrFvSsSnWbiryNzWDKnmcATPm29BfGj/nHXXepVMqu7UEMHNqN5q3q4eBozZyFo8nMzOLksUvF5tWq40bzlvWwtbekspUpP/TtiIOTNffvPpXHbPU7RCVTI2YvGIWbhyPmFibUqedBZSvTEnVt2fEn3b6tRY8utbG3NWHahG8wraTH7gPXi4x3qWpOx7bVcLSvhKW5Ad+2r06j+k7cvvdGIU5FRQVjowoKr7IilUo5sGsvfQb1x6tFU+wc7JkybwaZmZmcPXG62Lzgh49wr+ZOy3ZtMDM3o3b9urRo24rnT57JY+o2qs/gn4fh1aLpF+nauf04g4d2oUWrujg4WjFv4c9kZGZx4tjlYvO8l4ym5/dtqOpsg62dBTPnDEeaL+Xm9UcAZGZmc+7MDcaO70PNWi5YWZsy4ufvMLcwYf+e4j/vx2zZdoFuXevRo3t97O1NmTa5K6amBuzec6XIeEsLCdOndKPzt3WoUL7oC5S+ni7GRhXlryvXnqOlpU7b1tVKpQnAy1nC2HZ2tPb4fCv+gQfvUrAw1KJvY0ssJdrUtNOnZz1zgkNT5TH33yVTw0aPjjUqYWGoTcMqhnSobqIQU1b+sdHDw6KJj0uiXsNq8jINDXVq1nLlwb3npapDKpVy8/pD3r2NoEYtF3n5pT9u4eJqz8RfltKycX9+6Daeg/vPlFhfdk4uwc8iaFTPUaG8YT1H7j0MKZWmJ88iuPfwHXVqKHal0zOyadZhMV7tvBk2ZitPnkWUqr6PiQyPICEuntr1C3oKGhoaVKtZneAHj4rNc6/myfMnz3n6WNZyRISFc/3KVeo1alBmDUURHhZDXFwS9Rt6fqRLnVq1XLhfynMJkJmZRW5uLnp65QHIy8sjLy+/UM9HS0uDe/eeFVWFAtk5uQQ/CaVRgyoK5Q0bVOHegzfFZJWdgIPX6dCuBjo6ml+tzk+pbqNHVFIWF5/GI5VKiUvN5tTDWJq4FPRKatjqERyWysOQFABC4zO49DSBJs4l93yK4x933ePjkgCQSPQVyg0l+kRGxH42NzU1jXbNhpCdk4OaqiqTZwylXoNq8vfDw6I5sPcUvX/8hoFDuxH86C+WefuhoVGOjt82K7bexKR08vLykUjKK5QbScoTG//5q6JXO28SEtPIy8tn5NAW9OhSW/6ena0x3rO7U8XBlPdpmWzbfZXvB27g8J7R2FgZfbbej0mIiwfAwFDxxBlIDImOjCo2r0XbViQnJjFqwHCkSMnLzePbHl3pPbBfqff9OeL+PpeGEj2FckOJHpERcaWuZ+WKnZiYGFK3vjsAurraeFRzwmdDALZ2Fkgk+pw8fplHD19iZV1y7yzx7/MhkVRUKDeSVCA27stbuY95+OgdL/6KZMHc779KfcVR3VaPpb2dGbf9Cdk5+eTmS2nuKmFal4JGqUP1SiS+z6HPmntIpZCbL6VXA3OGtLD+4v2W2ejHgy6ycHbBD91Xrp8m+0NFMU4qlaLySdmn6OpqsztgOenpmdy88ZAVS7ZgYVmJWnVkY5X8fCkubvaMHNsHgKrOdrx6GcqBvac+a/QPfLp/qRRUPhX6CTs3DSM9PZsHj0JYvuYk1pUldGxbDYBq7lZUcy+YYKzhaU2X3mvYsecq0yd2KrbOM8dPsXz+Yvn2olXL/tanqEUqE1gs927fZbvfVsZO+RUXdxfCQ8NYvfR3JD4S+g0d+NnPVRTHgv5k/mwf+fbq9VOK1VXSufzAFr/DnDx+hU1bZ6OpqSEvX+A9ktkz1tO62XDU1FSp6mxLuw4Nefak9C1ykeezlLpK4sDB6zg5muHh/uVmKg0vo9JYEPiSn1pZ06iKIbEp2SwNesXsAy9Y0LMqADdfJrLx3DtmdHXE07oi7+Iy8A58ybqKb/mplc0X7bfMRm/SrA7u7k7y7eycHEDWshsbF7RQiQnJGH7Syn+Kqqoqla3NAKjibMub12Fs8T0oN7qRsT629pYKObZ2lpw/U/Q4+wMG+jqoqakSF/deoTw+4T1Gn7Tyn1LZQvYZqjiaEpfwntU+5+RGL0q/u4slb0PjP1tnwyaNcHYrGJLk/H3MEuLjkRgX9ASSEhIxNCy+e7Z5nQ+tO7SlY1fZRcXO0YGMjEyWz19En8H9UVUt20isabNauLsXtCSK59JAXp6YkFKolS8K/y1H8PM9xMZNM3CqomiYylam+PnPISM9k/dpGRgbGzBx/G+YW5qUWK+Bge7f5zNFoTw+IRUjSdnnSD4lIyObYyfuMvrndv+4rpLwOR9CDRs9BjWTNRhVzEFbQ5U+a+8zpp0tJhU1WXXyLZ1qmtKjnjkATmblycjOY9b+FwxvYY2qatmvbmUeo+vqalPZ2kz+srOvjMRInxtXCx5LlJOdw53bwXhWr/KZmopAWmACAM/qzrx7ozgGDnkbgZn55yc+NNTL4VrVnCs3/lIov3rjJdU9ir/lV0iOVEpOdu5n33/6IqLECTkdXV0srSrLXzZ2thgaSbh9/ZY8Jicnh/t37uHq6V5sPVmZmYXMrKaqilQq5UsWxdXV1cbK2lT+sre3xMhIn2tXHxboys7l9u0nVCvhXG7dfATfDQGs2zgVV7fib31q62hhbGxASvJ7rl55QNNmtYuN/YCGejlcXSpz5ZriPMHVa8+p7ln07dKycOLUPbKzc+n0Tcla/imZ2XmFeiFy4/59CjNyCseoqagglcpDysw/HqOrqKjwQ9+ObPYNoLK1GVbWZmz2OYiWliZtO3jJ42ZOWYmxiYRRv8i64Zt9A3Bxtceysik5OblcuXSXoCMXmDJjqDynd7+ODOgzlc0+B2jVpiGPH/3FwQNnmDZ7eIm6BvRpzMQZ+3BzsaS6hxV7D94kMiqJXt3rArB89UmiY1NYMvc7QHbP3cxUHzsb2UXkzv23bN7+J316FUx0rfE5i6ebFTZWRrIx+p6rPHseyaxJ35b5mHX/oSc7/PyxtLLEwqoyO/380dLSomW71vK4hdPnYGRizNDRPwFQ36sR+3fsxqGKEy7uroSHhuG33oeGTRqjpia7v5qenk54aJi8jqjwCP56/oKKFStSyezz42EVFRV6922Pn+8hrK3NsLI2ZZPPIbS1NGnXoeD/CaZPWYOJiSGjf/kBkHXX163ei/eS0ZibmxAXmwSAjo4WOrpaAFy9fB+pFGxszQkJieK3ZduxsTHn2y5NS3XMBvRrysQpO3BztaK6pw17D1wlMjKRXj0bArD8t6NExySzxLuPPOfpM9lxSEvPIiHxPU+fhaGuXg4He8XjcODgdVo2d8dAv+Tbtp+SlpVLSFyGfDssIZOn4ano6ahjbqDFimOviU7OYvEPzgA0c5Ewc/8Ldl8Nl3fdvQ+/xMOqAiZ6mvKYrRfDcLYoj6eVrOu+6uQbmrlKUPuC1hy+0n30Hwd1ISsrm0XzfOT/MLPWd6bCfdeoyDhUVApao8z0LBbN8yUmOh5NTQ1s7CyYv2gMrdsVfKFc3R1ZtnISa37fge/6/ZhbmjB+0kDadyz5H0Dat/YgMSmNdb7niIlLxcm+Ej6r+mNhJuuSxsalEhmVJI/Pz5eyYs0pwsITUFNTxcpSwvhRbenVrWBmPCU1k5kLDhEbn0qF8lq4VDFnx6aheLgV/88kxfF9/z5kZWXxm/cyUlNScXFzYen63xXuoUdHRaPyUQved3B/VFRU8Fu3kbiYWPQNDGjg1ZBBIwsufM+fPOOXIT/Lt9cuXwVAm2/aM2XujBJ19R/0LZlZ2Syct4mUlDTcPRxY7ztN4VxGRsYpjOP37TlNTk4uE35ZoVDXsJ+6M+Jn2YU09X06q3/fTXRUPHp65WnRqi4jx3yPunrpvoLt29UgMTmNdRtOERObjJOjGT7rh2FhLhvqxMalEBmZqJDTuftS+d/BT0IJOnYHC3NDzp+eJS9/8zaGO3dfs9lnRKl0fEpwaCo/ri/ozS4+8kq271qV8P7emdiULCKTMuXvd6ljRlpWHjsvh7PkyCsqaJejnoM+4zsW9IKGt7RGBRVWnXhDdHI2huXVaeoiYWz7L++9qEjL0OcTT4EtI+IpsGVGPAW27IinwAoEAkAYXSBQCoTRBQIlQBhdIFAChNEFAiVAGF0gUAKE0QUCJUAYXSBQAoTRBQIlQBhdIFAChNEFAiVAGF0gUAKE0QUCJUAYXSBQAoTRBQIloEy/RxcIBP83KdMTZo6+Lv0jf/9NvrEz+n/yAQ9mOoaQW7oFCv51yrVG+nzJf62iECpVJiKN2PBfyygSFfPhSIMX/tcyCqHiOrXEGNF1FwiUAGF0gUAJEEYXCJQAYXSBQAkQRhcIlABhdIFACRBGFwiUAGF0gUAJEEYXCJQAYXSBQAkQRhcIlICvsprqoysXuHb8MGEvn5Oekswva7ZgYe9UYt6lQ3u5duwQibHR6FbUx6NRU9oPGI66hqY8JjkulmOb1/Hs9nVysrMwtqjMd2OnYOlYtcT6pVIpWzf6ERRwmNTUFJzdXBk7ZQK29nbF5owZ/BMP7twrVF6vUQMWrV4OQHpaGn7rfLh8/hKJiQk4VnFi1MRfqOrqUqKmD+zcfQm/LeeIjU3B0cGMqZO7UqumQ5GxMbHJLF5yiMdPQnn3Lpa+vZswbUq3Yus+dvwO437dSovm7qxbPbTYuE+59TgSv0OPCH4VT2xCOmumtqBlPZti42MS0lm8+QbBr+J5F5FM346uTB1STyHm4LkXTF35Z6HcBwd+RFOjbF+/XYEP8Nt7m9j4NBxsJEwd2YRaHpbFxh8985RNe27zLjyJCroaNKpjw8ThXhjoaReKPXb+OePnHadFQ3vWzu9Uak23gqPwOxwsO2aJGayZ1IyWda2KjT99/R17Tj7n6dsEsnPycaisz8ienjSubiGP2XfmBYcvvOKvkCQAXO0l/NK7Oh6OxqXW9SlfpUXPzszExsWdDgNKXrf8A3fPn+L4lg206j2QiT67+G7sZB5cOsfxLQU/aEhPTWHN+OGolivH4HnL+XXjTr4ZPAot3fKl2sfurTvYv2M3YyaPZ8OOzRhKJEwYPob0tLRic+Yt9ybgTJD8teXATlTV1GjSqrk8Zulcb+5cv8XU+TPZvG8HterXZfzw0cTGxJRK1/ETd/BedJARQ9sQeGASNWvYM2TYeiIiiv5hTnZ2LgaG5RkxtDVVq1gUGfOB8IgEFi8LpFZN+8/GFUVGVi5VbQ2ZMbR+qeKzc/Iw1NNieA9PqtoYFhtXXkedP/2/V3iV1eTHzz/He+0FhvepwyHf3tTysGDopEAiolOKjL/zKJxJi07Rrb0bQVv68fvsjjx+Fs2MZWcKxYZHpbBk/SVqeXz+2BZFRlYuVW0MmDGkbqnibwdH08DTHJ9pLQlY2pG6bqb85H2eJ6/j5TE3H0fRoZEt/nPbsMe7PWZGugyac4bo+OK/tyXxVVr0mi3aApAQHVnqnLfPHmPj4k6NZq0BMKxkRrWmrQh9/kQe88f+negbm9Br3DR5mWEls1LVL5VKObBrL30G9cerRVMApsybQZcWHTh74jSduncpMq+inp7C9vlTZ9DS0qTp30bPyszk4rkLLPhtMZ41qwMwYPhgLv9xicP7DzH455KX1d3i/wfdutWnR/cGAEyb0o3LV5+ye+9lxv9SuDWxtJAwfUp3AAIOXS+23ry8fCZM9GfUz+25c+clKakZJWr5GK+alfGqWfq13i0rVWDaENlFIeDsi2LjVFRUMDbQKZOWT9m6/y7d2rvRo4M7AFNHNuXyrXfsPvKQ8UMaFYq//yQSC9OK9OsmO0eWZnp89407fntuK8Tl5eXz64ITjOpfn9uPwkl9n1UmXV41LPGqUXyv4lOmDqqjsD2uTw3O3wrhj9thuNhJAFj2i5dCzLwR9Tl17R3XHkbRuVnZL+DwH47RbV08CXv5nJC/jR0fGc6zW9dwrtNAHhN8/TKWjlXZtmA6s3p1YMXP/bl+4kip6o8MjyAhLp7a9QsOrIaGBtVqVif4waNS6zweeJTmbVqhrS3r7uXl5ZGfl4eGhoZCnKamJo/ulbzeeHZ2LsFPQmnUQHHo0bBBVe7df1NqXUWxdv0JDA3L06Nb6Vrkf4v0jByaD9pDkwG7GTb3NE9ele3nztk5eQS/iKZhLWuF8oa1rLj3OKLInOqu5kTFvufi9TdIpVLiEtI4dfEvmtSzVYhbu+06hvradO/gVrYP9ZXIz5eSlpGLXnmNYmMysvPIzctHr0LxMSXxVVr0L6F605akJSeydsIIpFIp+Xl51O/Qhebf9ZXHJERFcO1YIF5de9KiZz9CXjwhcMNvlFNXp1bLdp+tPyFO1hUyMFTsUhpIDImOjCqVxqePg3nz8jUTZxX83ldHVxdXDze2+W7B2tYGA4kh506e4enjYCytSm4NE5PSyMvLRyKpoFBuJKlAbFzR3dDScOfuaw4cvE5gwKQvruN/gZ2FPt5jvHCyMeB9eg7bjgbzw6QgAld1wcZcr+QKgMTkDPLypUg+6RVIDHSJS3xXZE4NN3OWTmvLL3OPkf23UZo3sGP66GbymLuPwgk4Hkzgpj5f/gH/IVuOBJOemUu7BjbFxqzYfodKhjo08DD/4v2UuUW/e/4UU7u0lL9eP77/RTt++fAu5/Zuo+vP4/ll9RZ+nL6QpzevcmbXFnmMVJqPhYMT7fsPx8LBifrtO1OvbSeuHTtUqL4zx0/RtkFz+Ss3NxeQdRs/RiqVgkqh9CI5HngUWwc7nN1cFcqnzp8FUind23SiVd0mHNy9jxbtWqOqWvrDWVgXqJRS16e8T8vk18n+zJvTC0OD0s1f/FtUq2pCp2YOVLWVUMvVlN8nNsfGQo8dQU9KTv6EwsdHWuypfPk2ngWrL/Bzv3oEbPwB38VdCItKYfaKcwC8T8/m14UnmTehZZGTc/8GQX++Zs3eB/w23guJftEaNh16zLHLb1g9sSmaGmpfvK8yt+gu9RoxrmrBF19P8mUzgae2+VKjeRvqtpWNSc1s7cnOyuTAqsW06PUjqqqqVDCUUMnKRiHPpLIND69cKFRfwyaNcHYrmPXOyckBICE+Homxkbw8KSERQ8PiJ44+kJmRyflTZxkwYkih9ywqW7LSbz0ZGRmkv09DYmzEnEnTMbMo+YproK+LmpoqcZ+03vEJqRhJKpaYXxShIXGEhycw4mcfeVl+vuwJYS4eYzgZNB0rqy+fsf2aqKqq4O5oxLuI0vdeDPS0UVNVIS4hXaE8PjG9UCv/AZ9dN6nhZs6gXrUAqGJvjI62Or1H72PMoAbEJ6YTHpXCiKmH5Tn5fz9VzbXF75zY1h8rC/0yfrrSc/zyG6avvcrvE5rSwLPo741f4GM2Bjxk8+zWVPnMZGdpKLPRtXR00dLR/Uc7BcjOykJFRbEFVFVVlbW4fx9wWxcPYsNCFGJiw0MwMDEtVJ+Ori46ugW6pFIphkYSbl+/hWPVKoDM/Pfv3GPYmJ9K1PfHmXNkZ+fQqn3bYmO0tbXR1tYmNSWFm1dvMHzszyXWq6FRDleXyly5+oxWLT3l5VevPqdFc/cS84vCzq4SRwOnKJT9viqItLQspk3phqmpwRfV+79AKpXy9HUCTtal16ShroarUyWu3n5Hq8YFtyCv3gmhecOiJ6cyMnMpp/bp90vlbw1gZ2XIkc19Fd5f6XeVtPRspo5qiqmJ4tDqaxL052umrb3K8l+8aFqr6Ik8v8DHrD/wkE0zWuHuYFRkTFn4KmP09NQUEmOiSImXTbJ8MGcFAwkVDWUzibuXzUNPYkT7ASMAcKnbkEsH92Bh74RVVRfiI8I4uc0X13qNUFWTdVEad+7JmvHDOLfHH0+vFoQ8f8L1E0foMXpiiZpUVFTo/kNPdvj5Y2lliYVVZXb6+aOlpUXLdq3lcQunz8HIxJihoxXNfzzwKI2aeqGnX3gcefPqdaRSKVY21oSHhrH+tzVY2VjRrlPHUh2vAT82Y+Lk7bi5WVHd05a9+68QGZlAr56y2ePlvx0hOiaJJd795DlPn4YBkJaeRULie54+DUNdXQ0HBzM0NdVxclRsFSpWkHUFPy3/HGkZOYREFrS0YdHvefo6Hr0Kmpgbl2e5/y3ZvfNfmhTo+vu2UHpmLgkpmTx9HY96OVUcrGRGXrP7Lp5VTLAxr8j79By2Hw3m2Zt4Zg5vQFno36MGk7xP4lalEtVczdgX9IjI6FR6feMBwHLfy8TEvmfxVNmFuVkDO2YuO8vuww9oVNua2Pg0Fq69iEdVUyoZyYY3TraKBqpQXrPI8hKPWVRqwTGLSeXpmwT0ymvIjtmOO8TEp7N4TGNAZvLJqy4zdWAdPJ2MiU2U3RnR0lCjgq5ssm3Toces3H2PZb94YWFSXh6jo1UOXW31Mh23D3wVowdf/5O9Kwoemrdj0SwAWvUeSJs+gwBIjIlWGJe2/P5HVFRUOLnNh+T4WMrrGeBStyHtfiz4Bw+rKs70n+HN8a0bOLNrK4amZnw7bAw1mrcpla7v+/chKyuL37yXkZqSioubC0vX/67Q8kdHRaPyydg69F0Ij+49YNn6lUXWm/b+Pb6rNxAbHUMFvYp4tWjK4J+HU069dIezfbuaJCalsW79SWJiU3ByNMNnwwgszGXds9jYZCIjExVyOndfLP87ODiUoGO3sTA35PyZOaXaZ2l4/DKOH6cdl28v8rsh23dzRxaN9SI2MYOI2PcKOV3GBhboehlH0MVXmJuU5/ymngCkpmUza+1lYhMzqKCrgbOdhO3eHfBwKttQon3zKiSlZLJ22w1iE9JwtJGwcVFnLExlw53Y+DQiYgoM17WtK2np2ew8dJ/F6y9Robwm9apXZsLQxmXab0k8fhXPjzNPybcXbZHdvuvczJ5FoxrJjllcwf3vvadfkJsnZa7vDeb63pCXf4gH2HXyGTm5+YxZekFhXz9/58moXtW+SGeZHvcsngJbNsRTYMuOeAps2RFPgRUIBIAwukCgFAijCwRKgDC6QKAECKMLBEqAMLpAoAQIowsESoAwukCgBAijCwRKgDC6QKAECKMLBEqAMLpAoAQIowsESoAwukCgBJTpZ6oCgeD/JmV68ERcZvj/Ssc/wkjLgoj0pP9aRiHMdfTJk179r2UUiZpKAzLzCq9I81+jpVYdaezW/1pGkagY9yf/ZMmPIfu3UW27ruSYf0GHQCD4jxFGFwiUAGF0gUAJEEYXCJQAYXSBQAkQRhcIlABhdIFACRBGFwiUAGF0gUAJEEYXCJQAYXSBQAn4KossSqVSNm/w53DAMVJTUnF1d2bclNHYOdh+Ni815T0+a/y4eO5PUlNSMbMwY+T44TRoXA8Av/Vb2bxhm0KOocSAo+cDSq3Lf+MmggICSU1NxdnNlTFTfsXW3u6zeQd27ubI/oNER0Wjp69Hk5bNGTLqJzQ0NQvF7vTbyqY16+n2Q09G/jquVLo+aFu75jD7910kJSUNDw87ps/si6OjxWfzTp+6zapVhwgNiaGylQljx3alZaua8vdzc/NYuyaQoKPXiYtLxthYn85dGjJ8xDeoqpZ8XZdKpWxYe4CA/edJSXmPu4cDU6YPxMGxcrE5AfvPcfTwJV6+lK346uJiy6ixvXD3cCgy3s8nkFW/76F333ZMnPJjiZo+sOvgHfx23yA2/j0ONsZMHdOSWp7F68rOzmXtliscPf2Y2IQ0TI0rMLxfA7p1lC1X3XfkTm7dDymU16S+PRuXflcqTbdeJrL5fAjBoSnEpmSzepAHLT0+v4Dk0dtR+J17x7vYdMprl6NxVQm/dnbEQFe2UurpBzH4nHlLSFwGuXn5WBvr0L+ZFd/WNiuVpqL4KkbfuWUPe7YfYNrciVhZV2ar7w7GDp/I7sP+6OoWvVB9Tk4OY4f/ioGhPvOXzcakkhHRUbHofBJva2/DSp9l8u3SfFk/sGfrdvbv2MWkOTOpbG3Fdt/N/Dp8FNsC9ymsqPoxZ46fxGfVOibOno6bpzuh70JYPHMeAD9P+EUh9lnwE4IOBmLnWPQX+nP4bTqO/9ZTLPQehI2NKRs2HGXwwGUcP7EQ3fLaRebcv/eS8ePWM2p0F1q2qsnZM3cY98t6tu+cgqenbJ3wTZuOs3fPBbwXDcbBwYLHj98wbepmKlTQpm+/1kXW+zFb/I6w3f84cxeOwNrGDN8NBxk+eCGHj69AV7doXbdvPqFdh4Z4VnNCU1OdLX5HGTFkIQFHllGpkqFC7ONHrziw/xxOVazKdLyOn3uC96qzzBzfhhruluw9fI+hE/YStH0I5qaFl7YGGDszkPiENOZPbo+VpQEJienk5uXL31+9sCs5OXny7aTkDDoP8KNNs6ql1pWRnUcVi/J0qWvGmM2PSoy/8yqJyTuCmdzFiWZuRkQnZTF73zNm7H7KmsGyJaD1ddQZ1soGu0q6qJdT4cLjOKbteoqkvAaNnCWl1vYx/7jrLpVK2bczgB8H96ZpSy/sHG2ZPn8SWZmZnDl+rti8oEMnSElOYdFv8/Co7oapuSmeNdxxrKK4sL1aOTUkRobyl4Ghfql1Hdi1hz6DBuDVohm2DvZMnjeLzMxMzp44VWzek4ePcKvmQct2bTA1N6d2/Xo0b9ua50+eKsRlpKezYOpMJsyYSoWKFUul6WNt27adYdjwjrRqXQtHJ0u8Fw0mMzOLoKDrxeZt23aa+g1cGTqsI3Z2Zgwd1pF69ZzZ7n9GHvPg3iuat6hOk6aeWFga0aZtbRo2dOXx47el0rVz2wkGD+tMy1Z1cHSszHzvn8jMzOJ40JVi87yXjqLn962p6myDrZ0Fs+YOJT9fys3rjxXi0tMymTJxNbPmDKVixaIvtMWxdc9NunX0pMc31bC3MWLqmFaYmlRkd2DRv8D78/orbt0PYeOy72hQ2xZLM308XMyp4W4pj9GvqI2xpLz8dfX2G7Q01WlbBqN7uRgxtoM9rT1NShX/4F0yFoba9G1SGUuJNjXt9enZ0ILg0IJ16es4GtDK0wR7U12sjHTo19QKJ/Py3HmdVGpdn/KPjR4RHkl8XAJ16teSl2loaFCtpiePHgQXm3f54lXcPFxZ7r2Sjs260afrQPw37SQvL08hLuxdOJ1a9qB7ux+YOXEe4WERpdIVGR5BQlw8terXVdDlWbM6wQ+Kv/K6V/PkxZNnPH0s0x4RFs6NK1ep16ihQtzv3kup17ghNevVKZUehc8UFktcbDINGrp9pE2dWrWrcP/ey2Lz7t9/RcOGrgplDRu5ce9+QU6Nmo5cv/aEt2+iAHj2LIS7d//Cy8ujRF3hYTHExSVRv0FBrIaGOjVrOfPg/otSf77MzCxyc3OpqKdo5oXzN+PVpDr1GriXui6A7Jw8gl9E0bC24lCwYW1b7j0OKzLn/OW/cKtiht/O63h1Xk2bXhtYvOYcmVk5xe7nQNBD2rdwQUdbo0z6ykJ1Wz2ikjK5GByHVColLiWLU/djaOJiVGS8VCrl2vME3sakUcte/4v3+4+77glxsnXJDSQGCuWGEgOiIqKLzYsIi+RuxD1at2/JsrXehL0LY7n3KvJy8xg4vB8ALu7OTF8wGStrSxLiE/H33cHwfqPYcXAzevpFd9cKdMXLdBkqdh0NJIZER0YVm9e8bWuSEpMYPWAoUqTk5ebRqUc3fhhYMJY8f/I0fz17zoYdWz6roTjiYpMBMJIo9gSMJHpERBS/Bn1cXDKST3Ikkory+gAGD2lPamo6HdpPRU1Nlby8fMaM7UqHjvVK1hWXJKvTSPHYSow+r+tTVq7YjYmJIfXqFxj6xPGrPH3yhl37FpS6ng8kJqeTlydFYqh44ZAY6hIXn1ZkTmhEEncehaKhqcaahd1ITE5nzvLTJKdksnBqh0LxD59E8NfrWBZMbl9mfWWhuq0+S/u5Ms7/Mdk5+eTmS2nuZsS07k4KcakZuTSdeZns3HxUVVWY2aMKDat+WbcdvsDop46dZem8FfLtpWu8AVBRUVGIk0qlhcoU3s+XYmBowMSZ41BTU6OqixNxsfHs8t8rN3r9RgWtsb0juHm48F3HPpw4cppe/Xoo1Hfm+ElWzF8k3/ZetaJIXUiLKPuI+7fvsMNvC2OnTMTZ3ZXw0DDWLF3BNh8J/YYOIiYqmjVLV7Bk3aoiJ+eK4ujRa8ye5S/f3rBhbJHapHz+mBWdAx8XnTh+k6Cj11i6bBgODuY8exaK98JdmJjo07lLI4XcY0cvM2+2r3x7zYZJRe+jhGP2MVv8jnDi2BX8/GeiqSlrGaMi41ji7c8G36nysi+hkASptHDZ3+RLpaigwrKZnahQXguAyaPyGDP9IDPHt0ZLU10h/kDQAxztjPFwMf9ifaXhZdR7FgS84Kc2tjSqakhsSjZLD79k9t5nLPjBRR6nq6nGwYl1SM/K4/qLBBYH/kVliTZ1HA0+U3vxlNnojZo2wNXdWb6dnZ0NyFp2I+OCK05iQlKhVv5jJMaGlCtXDjU1NXmZtZ0V8XEJ5OTkoK6uXihHW0cbO0c7QkMKd9caNmmMi1tBtzY7R9ZFS4iPR2Jc0C1KTEgo1Mp/zOZ1G2ndoR0dun4LgJ2jA5kZGSyf702fwQN48fQZiQmJDOvdX56Tn5fHw7v3OLT3AKdv/KnwmQCaN6uGh0fBTH92di4AsXHJGJvoy8vj41MKtdgfY2SkR1xcskJZQnyKQgu8bOleBg/pQPsOsoukU5XKRETE4etzrJDRmzavqTAznp0tO2ZxsUkYGxecu4T4ZCSSz/egAPw3H8XPJ5CNftNwqmItL38S/IaE+GS+7zFFXpaXl8+d28/Ys+sUt+7vQE2t+FGkgZ4OamoqhVrv+MT0Qq38B4wl5alkXF5ucgB7awlSKUTFpGJTueA7kJGZw/FzTxk9qHGJn/Gf4nPmHTXs9BnUQnZ8qliAtoYafVbdYUwHe0z0ZI2HqqoK1sayiWlnywq8ik7H5+zbf8/ouro6CjPpUqkUiZEht67fwcnZEZDNqN+/84ARY4YWW497NTfOnDhHfn6+fCY99F0YEmNJkSYH2UXl3et3eFYvPMbT0dVVmEmXSqUYGkm4ff0mjlWryHU9uHOPoWN+LlZXZmYmKp/M7KuqqiKVyuqsUacWm/fvUnh/8ax5WNla833/foVMDqBbXlthJl0qlWJkrMe1q8G4uFj//dlyuX3rOePG9yiU/4Fq1ey5ejWYH/u3kZdduRJM9WoFZs3IyEZVVbGZU1VVJT+/8KMBdXW1FWbSpVIpRkb6XL/2CGcX2Xg4JzuXO7efMmbcD8XqAtjqdxTfjQdZ7zsVVzfFCdW69d04cHipQtmsaeuxsTVnwOBvP2tyAA11NVydTLl66w2tmlSRl1+9/YbmjZyKzKnhbsmpP56Rlp6Nro6sF/E2NAFVVRVMTSooxJ44/5TsnFy+aeNaVFVflczsPNTUPj0/JfeWpFIp2bn5JcYVxz8eo6uoqPBd725s89uJpZUFla0s2ea3E00tLVq1byGPmzfNGyMTI0aMGQJAl+86cWD3IX5fvIbu33chLCScbZt20eOHLvKcNcvX07BJAyqZmpCYkIS/73bS0tJp36nk20QqKip0/6EXO/22YmlVGUuryuzw24qWlhYt2xUYZeH02RibGDNktMz8Dbwas3/HLhyrOOHs7kZ4aCib1/vQoElj1NTU0NHVxdZB8Yuspa1NRT29QuWf09avXyt8NgZhbV0Ja+tK+GwMQktLk44fjaUnT/LFxERfbv6+fVvRr+8iNvkeo3mLGpw/d5fr156wfWdBS9msWTU2bgjCzEyCg4MFT5++w3/rKbp2K7m1UlFRoXe/dvj5BGJlbYqVtRl+PofQ0tKkfceCychpk9diYmLImHHfA7Lu+tpV+1i0dBTm5sbExSYBoKOjhY6uFrq62jh+ch9eW1sTff0KhcqLo3+vOkyadxS3qmZUc7Ng35H7REan0KtzdQCWb7hATGwqi2d8A0DHVq6s97/C1IXHGDWoMYnJ6SxZe55uHTwKddsDgh7QsrETBnpF3wr+HGlZuYTEZsi3w+IzeBqWip6OOuaGWqw4+pLo5CwW95FdRJq5GTFzzzN2Xw6jUVUJsSlZeB98gYd1RXlr7nPmLa6VK2BlpENOXj6XnsRz5FYUM7+rUqSG0vBV7qP3HtCLrKwsli9cSWpKKi7uzvy+folCyx8dFaPQUlYyNeH3DUtYuXQdP/YYjJGJET16d6XPgF7ymJjoOGZNnk9yYjL6Bnq4erjgs30NpuampdLVq39fsrKy+N17Cakpsn+YWbp+lULLHxMVrXBvvu/gAaioqOC3biNxMbHoG+hT36sRg0eO+CeHqBCDBrcnMzOHuXO3k5KchoeHPZv8xiu0/JER8ah+NAitXsORZcuHs2rlQVatOoRVZROWrxguv4cOMG16b1atOsTcudtJiE/BxESf73o2ZcRP35ZK14BBncjKzGbh3M2kpKTh7uHA+k1TFVr+qMg4hVZo3+7T5OTkMn7sbwp1Df+pGyNGFt9DKQvtW7iQlJzB2q1XiI1/j6OtMRuXfofF3/fQY+PfExFdcItKV0eDzb99z/zfTtN98Bb09bRp28yZsUO9FOp9ExLPnYdh+P3Wiy8hOCSVH9fclW8vDvwLgM51zPDu7UJsSjaRiZny97vUNSctK4+df4axJPAvKmiXo56jIeM7FZzD9Ow85u5/TnRyFlrqqtia6LK4ryvta1T6Io1Qxsc9i6fAlg3xFNiyI54CW3bEU2AFAgEgjC4QKAXC6AKBEiCMLhAoAcLoAoESIIwuECgBwugCgRIgjC4QKAHC6AKBEiCMLhAoAcLoAoESIIwuECgBwugCgRIgjC4QKAHC6AKBElCm36MLBIL/m5TpCTNnQxL+Vzr+ES2tDInKKP3jiP8tTLWNCE9LKTnwP8BCt+L/kw94UDHuD+mB/7WMotHpDFnH/2sVhdEs+RHVousuECgBwugCgRIgjC4QKAHC6AKBEiCMLhAoAcLoAoESIIwuECgBwugCgRIgjC4QKAHC6AKBEiCMLhAoAV9lNdX7f17g8rFAQv56RlpKMpPX+1PZoeh1qz8m/X0qRzdv4P6Vi6SnpiIxNaPrsNG41W0AQF5eLse3+XHr/ClSEuKpaGhEvdbtadt7gMIKqMUhlUrZumEzRw8elq3y6ubK2CnjsHWwKzZnzKCR3L9TePHBeo3qs3jNMvl2bHQsG1eu48aV62RlZVHZqjITZ0+hikvVEnV90Oa/0ZdjBw+Rmipb6XX05InY2n9+6eUDO3dx5EAAMVHR6Onr4dWiBUNG/YyGpmaBtpgYfFeu5ubVa2RlZWJpZcWvM2fg5OJcoq5dB+/gt/sGsfHvcbAxZuqYltTyLHpp48kLggg88ahQuYONEUE7hsi3T114xqpNlwgJT8LKQp+xQ5oorHNeWnbuu4af/0Vi41JxtK/E1AnfUKuGbZGxt++9YdnKE7x5G0tGZjbmZgb06laX/n0Klo/ed/AGgUF3+etlNACuzhaMG9UWD7fSLeUs17XnMn5b/yA2LgVHe1OmTuxMrZpFn8fTZx+ye98Vnj4PJzs7F0d7U0aOaEvjhlUVYjZsOkNIaBy5OflYWxsxoF9TOn9Tu0y6PuarGD0rMwM7V3eqezVn12/epcrJzclh9aQxVNA3YPCMBegbm5AYG4OWdsFSy2f27ODPoEP0mzgDM2s73r14yo5lC9DWLU+zrj1L3MfurTvZt2MPU+ZOw9Laiu2+Wxk/Yiw7AncrLJ38MfNWLCQnJ0e+nZKUzKCe/Wnaqpm8LDUlhZH9h1Otdg2WrFmOvqEBEWHhlK9QvlSfHWCP/zYO7NzFxNkzqWxtxY5Nm5k4YiT+hw4Uq+3s8RP4rl7LxFkzcPX0IPRdCEtmzQHg5wnj5NpGDxhMtVo18V69EgNDAyJCw9CtUKFETcfPPcF71Vlmjm9DDXdL9h6+x9AJewnaPgTzv5cn/phpY1oyfnhT+XZeXj7f9vejTbOCL+29x2GMmxXI6MFetPKqwplLz/llZiA71/XB09Wi1Mfr+KkHeC89yqwpnalRzZo9ATcYMnIzxwLGYW5mUCheR1uDPj0bUMXJFG1tDe7ce8us+QfR1tagZ7e6ANy4/ZoObatRw9MaDY1ybPK/yMARmzgWMI5KJoU/b5G6Tt7De0kgs6Z1p0Z1W/bsv8qQn3w4Fji5SF237ryiQT0nfhndgYoVtDkYeJMRozaxb+dYXJwtAdDT02HEkFbY2VZCXV2NPy4GM3XmHiSGFRQuCGXhqxi9bqt2AMRHRZY659rJo6SnpjBhpQ9q5WQyJJXMFGLePH2ER4PGuNVtKHvf1Iw7f5zh3YtnJdYvlUrZv3MffQf/iFeLpgBMmTedLs2/4eyJM3Tq3rnIvIp6FRW2z588i6aWJk1bN5eX7dqyE2NTE6bMnSYvM7NQ1F6StoBdu+k9aABeLWT1Tpo7m24t23DuxCm+6d61yLzgh49w8/SgRbu2AJiam9O8bWuePX4ij9m91R+TSpWYNGeWvMzU3LxUurbuuUm3jp70+KYaAFPHtOLyzTfsDrynYOgPVCivxcfXtrOXXpCSmknXDh7ysm37btOgli3D+sp6acP6NuDWvRD8991ixZzSG33Ljj/p1rk2PbrWAWDar524fO0Fu/dfZ/zodoXiXapa4FK1oH5Lc0POnH/M7Xtv5EZfvvB7hZz5M7px6uwjrt14SedvapZO17YLdOtSlx7d6sl0TerC5avP2L3vCuPHdCwUP21SF4XtcWM6cO7CI85fDJYbvW5tB4WYH/s0IfDILe7ce/3FRv/PxugPr13G1sWNvauXMblHe+YP6c3JXVvJz8uTx9i7efL83m2iw0IACHv1F68eP8CtTv0S648MjyAhLp5a9evIyzQ0NPCsVY3H9wt3N4vjWGAQzdu0RFtbW1525eJlqrpUZeaE6XzbrAODevbnaMCRUtcZGR4u01avnqK2mjUIfviw2Dz36tV48fQZTx8HAxARFsaNy1ep27ihPObaxT9xcnFm9sTJdG3RmqHf9ybo4KESNWXn5BH8IoqGtRW7wg1r23LvcVipPteBoAfUr2WDxUet//3H4TSso1hno7p23H8cXqo6ZdpyCX4aTqP6jora6jlx78G7UtXx5Fk49x68o06N4odtGZk55ObmoaenU2xMYV1hNGqgOAxpWL8K9+6/LVUd+fn5pKVloV/MPqVSKdeuv+DN21hqFzMcKA1fpUX/EuKjwnlx/w61W7TmpwUriAkPZd/qZeTn5dG+7yAAWvXsS0bae+YN7IWKqirS/Hy+GTCMWs1bl1h/Qpzst/OGhordJwNDQ6Ijo0ql8emjJ7x5+ZpJs6YolEeGRXB4fyA9+vSkz+B+PHv8hFVLfkNdQ5223xRuXQppi4+XaZEYlklb8zatSUpMZMzAwUiRkpebR6ce3fhhQH95TER4OEcOBNCj9w/0HjiAZ4+DWbN0ORoaGrTu2KHYuhOT08nLkyIxVBw2SAx1iYtPK/EzxcS9588br1g281uF8riE90gMPqnTQJfYhJLrlGtLTCcvLx+JoeLQyEhSntj41M/merVZQEJiGnl5+Ywc1lLeIyiK5atOUMlEjwZ1HYqNUdQlq1ciURwWGUkqEBtXuucQbPa/QEZGNu1aV1MoT03NwKvlbLJzclFVVWXWtO40rF/2eY0PlNnoN8+dYvfvi+XbPy9cgYN7teITikGaL6WCvgE/jJ2MqpoaVk5VSY6P4+z+nXKj37lwlpvnTtF/yhzMbGwJe/kXAet/R09iRL3Wil/aM8dOsXz+Uvn2otWyv1VUVBT3K5UWKiuOY4FB2DrY4ezuolCen59PFZeqDB09HACnqk68efWGw/sPFWn0s8dPsGJBwdyF96rfZNr4RBtSPift/u077PTbzJgpk3B2cyM8NJS1y5az3WgTfYcMltWRn4+TizODR/0MgGPVKrx9/Zoj+wM+a/QPFNq/9POaPnDoxEMqlNeihVfhSdjC+aWrs3A9n57LwmWfsnPzCNLTs3jwKITlq05iXdmIju2qFYrz3XqBYyfvs813GJqa6v9zXQBBx++yZv0p1q0aWOhioaurSeD+CaSnZ3PtxgsWLQuksqWkULe+tJTZ6B71G2FTteCLr29k/EU7rmgoQa1cOVTV1ORlplY2pCTEk5uTQzl1dQ75rqF1z77UatYKAAtbBxJioji9Z1shozds2ghnd1f5dk52NgDx8QlIjI3k5UmJiRgYFp4k+ZTMjEzOnzrLwBGDC70nMZZgY2+jUGZta8OlsxeKrKtBEy+c3dzk29k5Mm0J8fGK2hISMZBIitW0Zd0GWrVvT4cunQGwc3QgMyODFQsW0nvQQFRVVTE0MsLGTrF7amVrw6Vz5z/3cTHQ00FNTaVQ6x2fmF6olf8UqVTKwWMP+baNGxrqagrvGRmWJy6hcJ1GBp+vU0GbgQ5qaqrEfdJ6xye8x8jw8xOglS1kvaYqjmbExb9n9cYzhYzut+0iG/3+YMuGIVR1Kv1ci4GBrkzXJ613fEIqRpLPT34eP3mPabP3sHLZjzSoV7ilVlVVxdpK5i3nqha8eh2Nj9/ZLzZ6mcfoWjq6mFhUlr80NLW+aMd2rh7ERoSRn58vL4sJC0HP0Ihy6rIrak5mJiqf3EZTVVVFml/4MXc6urpYWlnKXzb2thgaSbh97ZY8Jicnhwe37+NWzb1EfX+cPkdOdg6tOrQp9J6bpwchb0MUysLehVDJzLTIunR0dbGwqix/2djZYWgk4c71G4ra7tzF1cOjyDoAMjMzC91WVFVTQyqVmQ3ArZonoW8Vx62f0/YBDXU1XJ1MuXrrjUL51dtvqO5m+dncm/dCeBeWSLeOnoXeq+ZmUajOKzffUM2t9BNxGurlcHW24Mr1vxS1Xf+L6p7Wpa5HKpWSk52nULbJ/yLrfM+xae1A3F0//zmL1mXJlWsvPtH1gurVbIrNCzp+l8kzdrN8UV+aerkWG6egHcjOzi2Tvo/5KpNxaSnJhL58QeQ72QmNCQsh9OULkhPi5TH+i+dw2G+dfNvrm66kpaRwYN1vRIeF8PjGFU7t9serUzd5jFu9RpzatZXHN64QHxXJ/csXOB+wB8+GTUrUpKKiQo/e37HTbxuXzl/k9cvXeM9YgKa2Ji3btZLHLZg+D59V6wvlHwsMolGzxujpF77N0qNPT548Cmb7Jn/CQsI4c/w0RwOO0KVn0bPlRWnr9sP37Ny8hT/P/8Gbly9ZPGsOWlpatGhXcGHxnjEL39Vr5Nv1vRpz5EAA50+dJjI8nNvXb7Bl3QYaeDVG7e+eUffe3/Pk8SN2+m0hPCSUcydOcuzgITp/16NEXf171eFA0AMCgh7w6m0c3qvOEhmdQq/O1QFYvuECk+YdLZQXcOwBni7mONkV7t317VGLK7fe4LvjGq/fxeO74xrXbr/lx+/Kdk94QJ/GHDh0iwOBt3j1OpqFy44SGZVEr+6yCc3lq04wcfpeefzOvVc5f/EJb9/F8fZdHAGHb7F5+yW+6VBdHuO79QK/rz3Fwlk9sDA3JDYuldi4VNLSs0qvq19TDhy8zoFDN2S6lhwiMjKRXj1kdxmWrwxi4tSd8vig43eZNH0nk8Z3wtPDmti4FGLjUkhNzZDHbNx0livXnhMaFserN9Fs2XaBw0dv0alDrTIds4/5KpNxD69dZsey+fLtzQtmANC+7yA69JN1fRNjolFRKbiuGJhUYuSi3wlYv5KFQ/uib2RM0y7f0bpnX3nMdyPHEbTVhz2rlvE+KQE9iTGNOnSmXZ+BpdL1ff/eZGVm8dvC5bxPScXZ3YVl639XuE8dExmN6ifjqdB3ITy695Bl638rsl5nN2fmr/DGZ9UGtvlsxdTCjJG/jimy9S+OXj/2Iyszi5WLFpOaIvuHmSXrVitqi4pCVbVAW9/BA1FRUWHz2vXExcaib6BP/caNGTTyJ3lMVVdX5i5byqY1a9nmuwkzc3N+mjCOlu1LniRs38KFpOQM1m69Qmz8exxtjdm49Dv5LHps/HsiohW7qanvMzl94TlTx7QqqkpquFuyfHZnVvpeZNWmS1S2MGDF3M5luocO0L6NJ4nJ6azzOUdMXApODqb4rB6AhblsGBYbl0pkVJI8Pj9fyorVJwkLT0CtnCpWlhLGj2pHr+515TG7910nJyeP0b/uUNjXyGEtGTW86M9TSFfb6iQmpbFu4yliYlNwcjDDZ+1QLMxlQ4bY2BQioxLl8XsPXCU3N5+5CwOYuzBAXt6lU20Wzf8BgPSMbOYsOEBUdDJamurY2ZqwdGEf2retzpdSpsc9i6fAlg3xFNiyI54C+wWIp8AKBAIQRhcIlAJhdIFACRBGFwiUAGF0gUAJEEYXCJQAYXSBQAkQRhcIlABhdIFACRBGFwiUAGF0gUAJEEYXCJQAYXSBQAkQRhcIlIAy/UxVIBD830S06AKBEiCMLhAoAcLoAoESIIwuECgBwugCgRIgjC4QKAHC6AKBEiCMLhAoAcLoAoES8P8BgIR2b2/GS0IAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 300x200 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize_2D(a_2D + np.linspace(-1,1,6).reshape(1,-1), '二维数组和行向量，加法', 5, -5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 124,
   "id": "51450b42-888f-4474-a35e-b63ba5f3b40d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[-0.6391556 , -0.57134776,  0.12259128, -0.09709013, -0.25850759,\n",
       "         0.87781143],\n",
       "       [ 0.86419333,  0.11522758, -0.06728005,  0.18918711,  0.14464231,\n",
       "         0.21652763],\n",
       "       [-0.34992486,  0.14682643, -0.02353563, -0.08751258,  0.04027098,\n",
       "         0.83192725],\n",
       "       [ 0.68293344,  0.09694214,  0.1328462 ,  0.10001804, -0.16939739,\n",
       "        -0.76968265]])"
      ]
     },
     "execution_count": 124,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a_2D * np.linspace(-1,1,6)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 125,
   "id": "850e0598-6bd8-4a09-a815-c3debe431f9d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 300x200 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize_2D(a_2D * np.linspace(-1,1,6), '二维数组和一维数组，乘法', 5, -5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 136,
   "id": "0c4dddd9-eccc-4322-9be2-d3c35df9dfb4",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 300x200 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize_2D(a_2D * np.linspace(-1,1,6).reshape(1,-1), '二维数组和行向量，乘法', 5, -5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 128,
   "id": "dcfde459-1576-4ae0-9b2c-3a3a31bf76c7",
   "metadata": {},
   "outputs": [
    {
     "ename": "ValueError",
     "evalue": "operands could not be broadcast together with shapes (4,6) (4,) ",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mValueError\u001b[0m                                Traceback (most recent call last)",
      "Cell \u001b[1;32mIn[128], line 1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m \u001b[43ma_2D\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m+\u001b[39;49m\u001b[43m \u001b[49m\u001b[43mnp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43marray\u001b[49m\u001b[43m(\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;241;43m-\u001b[39;49m\u001b[38;5;241;43m2\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m-\u001b[39;49m\u001b[38;5;241;43m1\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m1\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m)\u001b[49m\n",
      "\u001b[1;31mValueError\u001b[0m: operands could not be broadcast together with shapes (4,6) (4,) "
     ]
    }
   ],
   "source": [
    "a_2D + np.array([-2, -1, 0, 1])\n",
    "# 报错"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 133,
   "id": "e20ee218-3112-4382-8fba-f96f4567e3b2",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 100x200 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize_2D(np.array([[-2], [-1], [0], [1]]), '列向量，4个元素', 5, -5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 139,
   "id": "573c83c3-4444-4d90-ae3a-308001ee1fb8",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 300x200 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize_2D(a_2D + np.array([[-2], [-1], [0], [1]]), '二维数组和列向量，加法', 5, -5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 138,
   "id": "d1b71a4b-ad09-4be0-bb99-91dcb8abaa81",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAACuCAYAAAAf8xDcAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAz9UlEQVR4nO2dd1hUx/+2b0CKoiIsIE1AiqKABbFj18Su0VgSe9fERE2zJ8YCltg7iGLB3lDA3rti770hCCxdEFhg3z9WFxcWWWLyi993576uvS5m9jNznjPnPOfMzFnm6MjlcjkCgeD/a3T/awECgeDfRxhdINAChNEFAi1AGF0g0AKE0QUCLUAYXSDQAoTRBQItQBhdINAChNEFAi1AGF0g0AJKFCf4Rnzav6Xjk6gmMSbkcdx/LaMAnZwtkN/2/a9lqEXHfQLyF4v/axkF0LH/Afmr5f+1DLXo2I7g4POE/1pGAb5wMCsyRtzRBQItQBhdINAChNEFAi1AGF0g0AKE0QUCLUAYXSDQAoTRBQItQBhdINAChNEFAi1AGF0g0AKE0QUCLaBYv3UvjAvHj3Bo9w6e3L9HanISs4M2UbFS5Y+WORyykxP7Q3n55DEATpWr8M3wkbhW9VDG5GRnszVwJacO7iMpPh5Tc3Oatu1A1/6D0dUt+hp188wJLuwLIfLRfdJTkhm9eA02zq4fLZOTnc3Rreu5fHgfKfFSLOwq0HbACCp711OJOxu6kxM7NpGaEE95B0c6Dh1FRY/qRWq6dPs1gSG3uf04nrjEtywZ24yWde0LjT94/jmb99/n7rMEsmS5uFQox8ge1WlU01YlZuWOm7yITiE7R46DdRkGdHSnU1PnIvXkZ+OemwRuu0JcfDoujmZMGNEIb0+bQuODQ24QHHKTVzEpWFuWYfi33nRu5ab8vs/PO7l0I6pAuSZ1HFg5o0PxtIVcJ3DLZeLi03BxlDDh+yZ4V7MtNH7v4Xus2hzB81dJlDE2wKe2I78Nb4SpSUllTMqbDBYEnuXQqUckp2ZiZ12WscMb06ReRY11XTt9nDNhu3n58B5pKcmMXb4WO+dKHy2z8JfveHTjaoH8qnUaMGL6XGU6SRpLyKpl3Ll0DllWJpa29nz70wTsK7kVKPsx/hGjZ7x9S+VqNajfvBUrZk7TqMztq5fxadmaSp7VMTAwICR4LdNHf8e84O1ILCwB2L0hiEO7d/D9pD+p4OTM47t3WOY7hVLGpWnX49sit5GV8RaHqp54+jRjx6JZGuk6sM6fK8cO0vXHsVja2fPgykXWTp/A93NXYPvu4F07cYS9/ovo/N3POFb15MK+EAJ//4WfV6zH1NLqo/W/zczGzdGULs1d+HH28SL1RNyOoUF1G8b08qKMsQE7jz7iO7+jbJnZlqpOEgBMShsyvKsnTnYm6JfQ5XhEJBOWnMHMxEjlglAU4ccf4rf8FL//0AQvd2u2hN1m6IS9hAZ+i41lmQLxm/beZN7qc0wb0xzPypbcuBfD5PnHKFvakOb1FUZZ/EdbZNk5yjJJKRl0HraZLxu7aKwLIPzYffyWnuD3Uc3x8rBhy94bDB23m9A1fbApX7ZA/OWbrxg78wDjvmtM8/pOxEjfMGX+USb/dZgl0xQXmCxZDgN/3YWkXEkWTmlPefPSvI5LxbiUQbG0ZWW8xcndk5qNm7Npvp9GZQb/7kdOdrYynZaSzMzhfanZuLkyLz01hfljhuFavRYjZsyjTDkzpNGRlCxdulj64B8yepM27QGIjS545S6MUVNmqKSHjZvM+WNHuBVxUVnfg1s38G7UhFoNGwFgaW3DmcP7eXzvjkbbqNWiNQAJMdEa67p89AAtevSlSu36ANRv9xUPLl/k5M7NfPPr7wCc2rWZ2l+0p25rxQnTcdgoHly5yPmw3bQZMPyj9Tf2sqOxl53GeiYMqqOS/qm3F0cvveBYRKTS6HU9VC8ufdtXZfexx1y5G1ssowftuEbX1lXp1tZdse3vGnE64gWb9t7k50ENCsSHHL5Pj3YetG2q6CVVsDbh+t0YVm25ojR6ubJGKmXCjz/EyKgErYtp9KBtV+jaxp1u7RQ9vgkjm3I64jmb9tzg5yE+BeKv3XmNbfmy9O1SEwA7axO6t/ckcEuEMmbnvtskp2SwaXF39EvoAWBrVfCiURR1WrYBIP615ueZcVkTlfTl44cwMDKkZqM8ox/auoFyFuXp/cskZZ7EyrrY+uAzGqNnZWSQnZ1N6bJ5De1WrSa3Ii4S9eI5AM8ePuDe9Wt41S94YP8pcmQyShgYquSVMDTg2e0bAGTLZLx69IBKXrVVYlxr1ubZ3Vv/mq735ObKSXubjUlp9XcduVzOuRvRPI1KwbtqeY3rzZLlcPtBLA1rVVDJb1irAldvvy60jKGBnkqeoaEeN+/HqNzFP2T7vju0bepKqZL6xdfm7aCqzduBq7fVm6umuzWvpW84cf4pcrkcaUIaB04+VOmSHz37hBru1kxdeIyGXf3pMHA9K4IvkpOTq7G2f4pz+/fi1aQVhiXzhhW3zp3C3tWNwGkTGN+tLbNG9OVMeMjfqv8fuaP/EwQvX4SZhQWe3nWVeZ379Cc97Q2jv+mCrq4eubk5fDPse3y+aP2v6ajkVYdTuzZT0aM6EmtbHl27zJ3zp8l9d/DTUpLJzc2hdDnV/wEuY2pGamL8v6brPWv23CY9I5s2DRxV8lPTsmgyZBtZshx0dXX4Y2g9GtYofGydn8Tkt+TkypGYllLJl5iWQpqYrraMTy17tu+7Q4sGTri7WnDrQSw7999Flp1LYnIGlhJjlfgb92J4+CyBGT+30FhXkdoS1Gvz8rBhzoTWjJkWTlZWDtk5uTRv4MSkH5oqY15GJ3P+6ks6tHRjpV8nnkcmMXXRMXJycvm+bz219f4bPLt3m+hnT/j2pwkq+dLoKE6H7qJZ15588U0/nt+7w45l8yihr0/dVm2LtY1iG/3UgXBWzs7rdk+cu5gqNbyKW40KIRuCOH3oAH8u9cfAMO9uevbwQU4dCGfUFF/snJx49uA+QQvnYmpuQdO2qhM5V44dZOfiOcr0oKl/aTQ5lp+Ow0exY+Fs/hrWCx10MLO2wbtlWyIOh6vE6ejoqKTlcnmBvH+a0FNPWLLlOkvHNUNSrqTKd8Yl9dk1twPpGdmcuxHNzDWXsCtfpkC3vigK7IJcTd47vutdG2liOj1/3I5crjDiV19UYdXWK+jpFiy0ff8dXB3NqOameU/j72p79CyeGUuO832fuvjUdiA2IY05K08zZf5RZvzaCoDcd5qn/tQCPT1dPCqVJzY+jdVbIgo1+qUjB9i8MG++Z8SMebh41vhb+/Oe8/v3Yu3ohKObu+ruyXOxr+RGx4EjAKjgUpnXz59yOnTXv290b58muLjnzYybvZs4+7vs2biOnetW8/vCFTi4qM5Url+6gM59+tOw1ZcAODi7In39ml3r1hQwetW6PthXrqpMm0gs/pae0iam9PvdD1lWJukpKZSVmLNvzXLMyivGRsZlTdDV1Stw936TlFjgLv9PEn76KZOWnmXBL01pUL3gnVpXVwcHa8Wwp0pFM55EJuO/86bGRjc1KYmerk6BO2R8UjqScqXUljEyLIHvLy34c3RT4hPfYmFWiq3htzEupa8ysw3wNkNG+LGH/Nivrtq6/rY2U/Xa/DdewsvdhkE9vQGo7GxBKSN9eo3axqiBDbCUGGNhZox+CV309PJGsM72psQlpJMly8FAX69AvZ71fXB0++A8M/9759l7sjIyuHz8MO36DSnwXVkzc6zsVWf/y9s7cu30sWJvp9hj9JLGxljb2Ss/hoZGRRcqhJDgtWxfs4qJ85bgXKVqge8zMzLQ0VGVqKuni1xecAxlVKoU5jZ2yo++oWGBmOKgb2CIibkFuTk53Dxzgqr1FBOCJfT1sXWpxMOrl1TiH16NwLGKh7qqPpnQU08Yv+QMf41pTFNvzSby5MjJkqkfJ6vDQF8P90qWnL3yUiX/7JWX1HT/+MVCv4QeVhal0dPTJezYQ5rWdUQ33x1934lHZMly6NDy44+dPqrt8gtVbZdfUNNd/eTU28xs8j+Bfa/p/QuEvTxseP4qidzcvBcKP4tMwkJirNbkAEaljLGwraD8GHzC+Q9w5eQRsmUyarcoOBx1cvckJlJ1n2MjX2BWvni9NPiHxuipKclIX78mUapYty3qxTMAykkkmErMAVg8dTJmFpb0GvEDoOiubw5YzqgpvlhY25AYLwXAqGQpSpZSXKVr+TRm59pAzMtbUcHJmacP7rF38waat+ukka701BSSYmNITlDUHfuu0cqYmlHGTDFjvfmvaZhILJSz5S/u3SY5XoqNkwsp8VIOBa9GLs+l6dd5j/MafdWTLXOnYefqhr2bBxf27yEpLoZ6bTsXqSntrYwXr1OV6cjYVO4+TcCktAE2FqWZu+EysfHpzBqluLCEnnrCuEWnmTCwDtUrWRCX+FbRTgZ6lDFWTMit3HETD2cJ9lZlkGXncuJKJCHHH/PH0OKNM/t3rcHYWYfwqGRJjSpWbA2/TXTsG3q2V1zA5gaeJVaaxqyxiq7v08hEbt6LpZpbeVLeZBK04xoPn8Uz87eWBeresf8OLRs6YVq2ZIHvNNLWzYuxfgfwqFyeGlWt2Rp6k+iYVHp2qKbQFnBaoW28ovfXrH5Ffp97hE0h1/Gp7UhcQhq+S09Qza085c0Vj6e+6ViNDbuuMWPJcXp/VYPnr5JYufESfb6qUSxtaSnJJMbFkPzuHI55qTjPyppKKPvuPFs3+0/KSSzoOOg7lbLn9u+lWoPGBWbhAZp16cm80UM5sCkIr8YteH7/DmfDQ+g5elyx9ME/ZPSIUydYNmOKMr3g9/EAdBs4lO6DFQaSxrxG54NL7IGd28iWyZg78VeVuj4sM2jMb2wOWMaqv/xITkzEzNyCVp268vXAoRrpunP+NFvn5y3OuHHWHwC0/HYAX/QeBEBSXIyKLpksiwPrAkh4HYVByZK4edejxy+TKVk67zlyjSYtSE9N5vDGIFIS4rFyrMjAP+dgqsGV9tbjePr9fkCZnrlG8binczNnZv7gQ1ziW6KkeYtwbjn4gOwcOVMDLjA14IIy/308wNtMGVMDzvM6Ph0jAz0q2powe1Qj2vpo/qMPgLZNXUlKyWDphkvEJaTh6ihh5Yz22L57Th0Xn05UbN5FKjdHzprtV3kamUQJPV3q1rBl08Kvscv3iOppZCKXb0UTOLNjsfSoaGtWWaFt3XniEtIV2vw6KR+HxSWkERWboozv0tqdtHQZwbuvM2vFKcqUNqRezQr88sGjOGvLMgTO/oqZy07SafAGypuXpk+XGgx5193XlJvnTxP813RlOsh3MgBteg+ibd/BACTGxhToncZGvuDJret877dQbb0Olasy5I+Z7Fm9nP0b1iCxsqbLiNHUbvFlsfQB6Mjf92M0QKwCWzzEKrDFR6wCW3zEKrACgQAQRhcItAJhdIFACxBGFwi0AGF0gUALEEYXCLQAYXSBQAsQRhcItABhdIFACxBGFwi0AGF0gUALEEYXCLQAYXSBQAsQRhcItABhdIFACyjW/6MLBIL/TYq1wsznvCAAsv3/tYyC6LcmPfvmf61CLaVKePLizdv/WkYB7EuXJCOn4KuKPgeM9GqSmRNRdOD/MYZ6Ra+II7ruAoEWIIwuEGgBwugCgRYgjC4QaAHC6AKBFiCMLhBoAcLoAoEWIIwuEGgBwugCgRYgjC4QaAHC6AKBFvCPvE11Y8h1ArdcJi4+DRdHCRO+b4J3NdtC4/cevseqzRE8f5VEGWMDfGo78tvwRpia5L1SN+VNBgsCz3Lo1COSUzOxsy7L2OGNaVJP8zeEBm8+ReCao8TFpeDqYsWEsV3wruWsNjY2LplZc3Zz604kz5/H0adXYyaO66ISI5PlsHLVIXaHXCQmNpmKjpb88lNHGvtU0VjTe+RyOSuXbWXHtsOkpqThUc2F8ZOG4OxSodAyRw6dJzBgJy9fvCY7Owd7e2v69O9A+45N1MYHBuxkyYKNfNu7Hb+OH6CxrvX+KwjbuZM3qSm4eXjww9jxODq7FFomWyZj05rVHArdizQulgoOjgz+cRS1GzRUxqxbuZz1/itVyplKJGw9eEQjXe+1rVi6nR3bjpKS8gbPai6MnzQQF9fC22zHtiPsDTnJo0eRAFStWpEfRvfEs5r6/Qn0382iBZvp1acNv43vp7Gu5Ut3vtOVhmc1FyZM6o+La+Hvst++7Sh7Q07z6NFLpa4fR/fAs1re+bnKP4QjhyN4+iQKQyMDatRwZfTPPalY0UYjXR/yyXf08GP38Vt6guG96rDLvxfenjYMHbebqJgUtfGXb75i7MwDdG3rTujqPiz4ox237scw+a/DypgsWQ4Df93Fq9cpLJzSnn1r+zHt55aUtyitua59V/CbuYsRQ75g97ZfqeXlzJDhK4iKVv82zKysbExNSzNiSCvcKqtvyAWLw9iy7SyTJ3QlPGQ8Pbs3ZOSoQO7cjdRY13uCAnezYW0o4yYOYsOWmUjMyzF88FTS0gr/RxMTk9IMHtqVtcG+bN05l05fNWPKpKWcPX2tQOztm4/Yue0wrpUciqVry9ogdgRvYOTYcSxZF4yZxJyx340gPa3wN+muWb6UsJ3b+f63sQRu20n7rl8z5ZefeHTvnkqco7MzWw4cVn78t2wrlrY1gXtYvzaccZMGELzV912b+X60zSIu3qFNu4asWjOZ9RunYmVtzoghvsTEFDwPbt18zPZtR6hU2b6YukJZvzac8ZP6s3HrNMzNTRg22K8IXXdp064+gWsmsmHjn1hbmzN8yEwVXRER9+j5TUs2bPoT/1XjyMnJYfjgmaSnZxRLH/wDRg/adoWubdzp1s4DZwczJoxsipVlaTbtuaE2/tqd19iWL0vfLjWxszahlqct3dt7cutBjDJm577bJKdksGRaB7w8bLC1KkstT1vcnC001rVm3XG6dqlHt6/r4+xsxcRxXbCyMmXT5jNq4+1sJUwa35XOnepQpnRJtTEhey8xfEgrmjR2p0IFc77t6YNPQzdWBx3VWBco7gAb14cxaGgXWrSqh4urPdN8fyAjI5N9YacKLeddx4PmLevi5GxHBXsrvu3TDtdKDly9clclLj3tLRPGLmTyn8Mpa2JcLF27NgbzzcDBNGregoouLvz65zQyM95ydP++QssdDgvjm4GDqOvTCGs7Ozp06453vfps37BOJU5XTw8zc3Plp5xp0a/7/VBb8Lp9DB7WmZat6uDqWoHpft+RkZFJeKj6YwrgN+cHenzzBW5VHKnoZMsfU4eSmyvn4vlbKnHpaRmM/20xf/w5lLJli9dmG9btZ8iwzrRsVfudruFkZGQRHnq20HIz53xPz29avdNlwx9TB5Obm8uF87eVMSv8x9Lpqya4uNpR2c2BqTOGER0dz507TzXW955PMnqWLIfbD2Jp6K1612jo7cDV29Fqy9R0t+a19A0nzj9FLpcjTUjjwMmHKl3yo2efUMPdmqkLj9Gwqz8dBq5nRfBFcnJyNdSVze07L/FpUFlVV4PKXL1e/EZ6jywrGwMD1dGOkaE+V64Wr85XkbFIpUnUb1hdmWdgoE8t76pcv3pfozrkcjkXzt/g2bMoanlXVfnOb/oqGjX2ol79asXS9frVKxLipXjXq/+BLgOq1fLmzvVrhZaTybIwMDBUyTMwMuLWNdV/N4168YIeX7aiT4e2zBg/luhIzXtCyjZrkLdPijarwvVrDzSuJyMjk+zs7AIXQN/pq2ncpCb1GnhqXJdCV9w7XXnlFLrcuHbtYTF15WDykQvzm9R0QNGzKy6fNEZPTH5LTq4ciWkplXyJaSmkCelqy3h52DBnQmvGTAsnKyuH7JxcmjdwYtIPTZUxL6OTOX/1JR1aurHSrxPPI5OYuugYOTm5fN+3XtG6EtPIyclFIimrkm8uKUOcNLX4O/oOn4ZuBK07Tm1vZ+wrmHPu/AOOHLup8QXoPVJpIgBmknIq+RJJOaKj4j5aNjU1jS+bDUMmk6Grq8v4yYOp1yDvgrE//DT37j5lw5aZxdIEkBAvBaCcRPVOa2pmRky0+gs3gHe9+uwIXo+nlxc2dhW4evEC544fJzc3Rxnj5uHJb1OnY2fvQGJCPMGBAYwa2I9VW3dQtly5IrVJpUkASMxNVPIl5iZERUk13ENYOG8TlpZm1KufZ8x94We5e+cpG7fO0LgeTXRFF0PXgnmb3+nyUPu9XC5nzuxganpVxvUjcxKF8Y9Mxuno5FelJu8dj57FM2PJcb7vUxef2g7EJqQxZ+Vppsw/yoxfWwGQK1dcPKb+1AI9PV08KpUnNj6N1VsiNDJ6YbrkH9GlCRPHdWXSlM206eCLjo4OFSqY06VzXXbuvvDRcuGhJ5k+xV+ZXrR8/Dt9qmLkcnmBvPwYG5dk8445vE3P4MKFm8ydvRY7u/J41/HgdbSUOTPXsMx/MoaGBkXuz5HwMBb4Tlempy9crNBF8XR99+tvzJ82lUFdvwIdHWzs7PiiY0cO7tmjjKnT0Ef5d0VcqVKtOv06tedg6F6+7t2nQJ1he08zbUqAMr1kxViFtgJtVjCvMNYE7mFf2BkC1/6ubJ/X0VJm+61lRcAEjdosbO8Zpk4JVKaXrvj1nS7VOHkxTrbVgXvZF3aO1WsnFarBd3oQD++/IGjD7xrVmZ9PMrqpSUn0dHUK3L3jk9IL3OXf47/xEl7uNgzqqVgVo7KzBaWM9Ok1ahujBjbAUmKMhZkx+iV00dPLG1k425sSl5BOliwHA329j+syNUZPTxepVHVCMD4hFXNJmb+zqwCYmZVm2aLBZGbKSEpKw9LShL/m78XOVvLRck2a1cbD01WZlsmyFXqkiVhYmCrzExKSMZOYFCj/Ibq6utg7WANQuUpFnj55xeqAXXjX8eDunSckxCfTq/tvyvicnFyuRNxly6Z9XLi6CT29vLar36Qpbp55dzZZVhYAifHxSCzy5kOSEhMxNSt8PF3O1Iw/5y0gKzOTlOQkJBaWrFq8ECvbwmeHS5YsSUUXF169eKH2+6bNa6nMjGdlyQCQxiWptll8MpIi2gxg7eq9BPrvZmXgRCpVzhtq3rn9lIT4ZL7pNl6Zl5OTy+WIe2zeeIBL1zaonIdNm3upzIxnZWW/05WcT1eKRrqCVocR6L8H/8DxhU4C+k1fy/FjV1izbjJWVh8/1wrjk4xuoK+HeyVLzl5+QatGeQfl7OUXNG/gpLbM28xsSuipXul0dRXp98vXeXnYEHrkHrm5cuV3zyKTsJAYF2lyha4SuFetwJlz92nVMq9be/bcfVo0K94YTB2GhvqUL18OmSyHg4eu0+bLGh+NNzYuibFx3gSfXC7H3Lwc58/ewK2Kop1kWTIuR9xh1E+9i6VFLpeTJVOYoE49T7btnqfy/R8Tl1LRyZb+gzqrmByglLExpYyNVeoyk5hz+cI5XNzcFLpkMm5cjmDwj6OL1GJgaIi5ZXmyZTJOHzlC41atCo3NysrixdOneNTwUvt9oW127iZVqirmc2RZ2VyOuMuon779qK6gwL0ErNzJ8oAJuHuoPl6tW9+D7SFzVPL+mLgcx4o2DBjcScXkH9N17txNqlR1/EDXPUb/1POjutYEhhKwcjfLA8bi7lHQL3K5HL8Zazl6OILAoEnY2Vl+tL6P8cld9/7dvBjrdwCPyuWpUdWaraE3iY5JpWcHxaTJ3IDTxErTmDX+SwCa1a/I73OPsCnkOj61HYlLSMN36QmquZWnvLlikuGbjtXYsOsaM5Ycp/dXNXj+KomVGy/R56saGusa0Lcpv43fgIe7PTWrO7Jl+1mioxPp2UPxbHfu/L3ExCYz2y/PWHfvKSaH0tIzSUh8w917kejrl8DF2QqA6zeeEROTTBU3W2Jik1m8bB+5cjmDB7YoVpvp6OjwbZ92BAbsxN7BGnsHawL9d2JkZEibdo2UcZPGL8LSUsKPY3oBiufi7u7O2FWwQibL5vTJK4TtOcH4yUMAxUno4qp6VyhZyhATkzIF8gvT9dW3vdi0OhDbCg7Y2tuzafUqDI1K0rx1G2XcrN8nYW5hyaAfflS0282bSONicalUGWlcLOtWriBXnkuPfv2VZVbOn0e9xo2xtLImKSGBjYEBpKel8UWHDhq3Wa++bQj03429g9W7NtuFkZEhbdvnPa+fOG4plpZmjPrpG0DRXV+6aCsz5/yAjY0F0rgkAEqVMqKUsRHGxiULjHlLljSkXLkyGo2FdXR06N23NYH+e3BwsMLewYpV/iEYGRnQtn0DZdyEccspb2nKqHfmXx24l6WLtjNzzvfYqtEFMGNaEPvCzrJwyU8YGxspY0qXKYWRUdHDjA/5ZKO3bVaZpJQMlq47T1xCOq6OElb6dcLWSjERFpeQRlRsXhe6S2t30tJlBO++zqwVpyhT2pB6NSvwy5C8MZy1ZRkCZ3/FzGUn6TR4A+XNS9OnSw2G9Cx6ETylrjZeJCansWzFAWLjkqnkao3/8mHY2ii6oHHSFKKjE1XKdP4678p++85LQsMuY2tjxtGDfwCQmZnNgsVhvIyMp1QpQ5o0qspsvz6ULat+mPIx+g/qTGZmFn7TAkhJScOjmivLAyar3C1eR0vR1cm7o2SkZ+I7LYDYmAQMDQ1wdLJh+swf+bJNQ3Wb+Fv06NefrMwMFs/0JTU1BTcPT2YuXa5y5499Ha0yLs7KyiRo2VKiX0VSsmQp6vj4MHbadEqXyZsMlcbG4DthPClJiZiYmlLFsxqLgtZR3lrzH38MGNSRzIwsfKeuVv4wZfmqCQXbTDdP29ZNB5HJsvl59HyVuoZ/15URI7sVq20K19WejIwsZkwNeqfLmRWrxuXTFZ9P1+F3uhbm09WF70Z2VcRsVvy2ZGC/6Sox02YMpdNX6n8kVRjFWu5ZrAJbTMQqsMVGrAJbfMQqsAKBABBGFwi0AmF0gUALEEYXCLQAYXSBQAsQRhcItABhdIFACxBGFwi0AGF0gUALEEYXCLQAYXSBQAsQRhcItABhdIFACxBGFwi0gGL9m6pAIPjfpHgLT8iP/UsyPhGdZp+nts9VF3y+2j5XXfD5atNpVmSI6LoLBFqAMLpAoAUIowsEWoAwukCgBQijCwRagDC6QKAFCKMLBFqAMLpAoAUIowsEWoAwukCgBQijCwRawD9i9OCNx2neYiKe1UbSpYsvEREPPxp/8eIDunTxxbPaSFq0nMSmzScLxBw4cIW27abg4TmStu2mcOhQ8d/HJZfLWbx4Lz6NxlKt+g/06TOXhw+jiiynybaLu8+fWl602efbZp+rrg/5ZKOHh0fg57eNEcPbsHvXRGp5uzBk6BKiohLUxr+MlDJ02BJqebuwe9dEhg9rzYwZWzhw4Ioy5urVJ4z5aRWdOtYjJGQSnTrWY/SYAK5ff1osbQGrDrIm6Ai/T+7J9m3jMLcwYcDAhbx5k1FoGU22Xdx9zo9os/9/2uxz1ZWfTzb6mqDDdO3akG7dfHB2tmbihO5YWZmyadMJtfGbN5/E2tqMiRO64+xsTbduPnTp0oDVqw8pY9auO0KDBlUYNqw1zk5WDBvWmnr13Fi79ojGuuRyOevWHWH48DZ88UVNKlWyZdbMfmRkZBEaerHQcppsu7j7nB/RZv//tNnnqis/n2T0rKxsbt9+gU/DKir5DRtW4erVJ2rLXLv2hIb54hv5VOXW7efIZDnKmPx1NvKpytVr6utUR2SklLi4FJV6DAz0qV3btVBtmmz77+zzh4g2y+N/vc0+V13q+CSjJya+IScnF4mkrEq+uaQscdIUtWWkcSmY54uXSMqSnZ1LYuIbRYw0pUCdEklZ4uLU16mO97HqtEkL0abJtv/OPn+IaDPVev+X2+xz1aWOf2QyTkdHRyUtR06+rCLjFfl/v849ey9Q02uU8pOdnVP4tj5Sj6bbLq6+v7ONouIV+X+/TtFmn67pc9b1IcVbYSYfpqal0dPTRSpNVsmPj08tcNV6j7lFWeLyxSfEp1KihC7lypVWxJiXLVBnQnwq5ubq6wRo3qw61atVVKazsrIBkEqTsbQ00UibJtv+O/v8IaLN8vhfbLP/BV3q+KQ7uoFBCdzd7Tlz9q5K/tmzd6lZ00ltmRo1nDibL/70mbt4uDugr6+njMlf5+kzd6lZQ32dAKVLG+HgYKn8uLhYY2FRVqWerKxsLl16WKg2Tbb9d/b5Q0SbabbPH/I5tdn/gi51fHLXfUD/lmzffobtO87w+HE0vn5biY5OpGfPxgDMnbuL38auUcb37NmYqKgE/Py28fhxNNt3nGHHjjMMHNhKGdO3T3POnLmLf8ABHj95jX/AAc6du0u/fi001qWjo0Pfvi1YuXI/hw5d5cGDV4wfvxYjIwPat6+jjPtt7Brmzt1VrG0Xtc+izbSnzT5XXfn5pK47QNu23iQmvWHZ0jBi41Ko5GqD/8qR2NpKAIiLSyb6g2eKFezM8V85Er+Z2wjeeAJLSxMmTuzBl196KWO8vJyZN3cQCxbuYdGiPVSoYMH8eUOoXr1ige1/jCGDvyAzI4s/p24iOTmd6tUqsjrwR0qXNlLGREcloPvB4EeTbRe1z6LNtKfNPldd+Snecs+f4wqY8Hmvzvk56oLPV9vnqgs+X21iFViBQADC6AKBViCMLhBoAcLoAoEWIIwuEGgBwugCgRYgjC4QaAHC6AKBFiCMLhBoAcLoAoEWIIwuEGgBwugCgRYgjC4QaAHC6AKBFiCMLhBoAcX7f3SBQPA/SbFWmInLiP63dHwSFkbWyHILf8HAf4W+bp3Pus1I3vJfyyiISQ/eZl//r1WopWSJ6rx+K/2vZRTAqqR5kTGi6y4QaAHC6AKBFiCMLhBoAcLoAoEWIIwuEGgBwugCgRYgjC4QaAHC6AKBFiCMLhBoAcLoAoEWIIwuEGgBn/w2VQC5XM7qFUHs2RFKakoqVT2r8NP40Ti5fPztj6kpqfgvCeTkkZOkpqRibWvNyJ+/o36jegBkZ2ezekUQh8IOEx+fgMRcQtuOrek3tA+6ukVfo+RyOcuW7mL71mOkpKThWc2ZSZP74eJqV2iZRw8jWbJ4B3duPyMqSsrYcb3o0691gbiYmATmzd3C6ZM3yMzMwsHRiqnTB+PurtkbL/+tNgOIi4lj+YKVnD9zkczMTCo42DFuym+4Va1cpK7g7RcJXH+auPg3uDpZMGFMG7xrOqqNvXD5KX1HrCmQH771B5wdLZTpA0dvs3DlUV5EJmBvZ8aY4S1o1axqkVryI5fLWbFsGzu3HSEl5Q0e1VwZP2kQLi4VCi2zY9thQvec5NGjlwBUrerEyFHf4FnNRRmTnZ3DiqXbCA87Rbw0CXMLUzp2asqQ4V00Ps+CVqxm784QxbH0cGf0+J+o6FL4+8xHDRrJtctXC+TX86nPrCV/AdCjTVdeR78uENO5exfGTPi5SF0f8o8YPXjNJras38bEqeOo4GDH2oD1jBn+C5tC1lPKuJTaMjKZjDHDf8HUzJRpf/2JZXkLYl7HqsQHr9lEyLY9TJw2norOjty7cx/f32dhXMaY7r2+LlLX6lVhrAvax3TfoTg6WrFyRQhDBs0idN9sjI1Lqi3zNiMLuwqWfPFlHWbPDFYbk5ycRp9vp1GnbhVW+P+CmaQsL1/EUqaM+n1Vx7/VZikpqYzoPxIv75r8tXQWpmbleBUZRZkypYvUFH7oJn7z9vHHb+3xqm7P5l2XGDJ6A2FbRmJjVa7Qcvu3/UhpY0Nl2szUWPn31RsvGDNxG6OGNadl0yocPn6X0RO2sjFgENU9CjeoOoICQ9iwNoypM77DwdGagJU7GTF4OrvDFhR6PCMu3aF124ZUr1EZQ0N9glaHMGLodHaEzKN8eTMA1gSGsH3rIab6fo+zix13bj3hj0nLKF2mFL36tC1S16agYLZu2Mz4qROxc7BnfUAQP48YzYbdmyhlbKy2zLR5vshkMmU6JSmZQT3607RV3ptRVwavIic3V5l++ugJPw8frRKjKZ9sdLlczrbg7fQd3JsmLRUvf584fTwdm3/FwfDDdO7WUW25sF3hpCSnsmLtUkroK2RY2VipxNy+fhufpj40aFwfAGtbaw7vO8r92/c10rV+3X6GDutEqy9qA+A7cxhNfEYSFnqO7j2aqy3n6emEp6fiSrxg3la1MatXhWJlbcZ036HKPFtbC7WxhWn7t9osePVGLMtbMmHaOGWeta21RrrWbDxL145edOtcS6Hpp7acPv+ITTsu8fP3rQotJzEzpmwZ9UZbu/k8Deo4May/Yj+d+1tw8coz1m4+z7zpmhtdLpcTvD6cwUO/okWrugBM8/2e5o2HsC/sNF93V6/Pb/aPKunf/xzO4YMXuHj+Jh06NQHgxvUHNG3uTeMmineU29pasj/8NHduP9ZI17bgrfQZ3I/GLZoCMH7aJL5q3oHD+w7R8evOasuVNSmrkj66/zCGRoY0/SLvvCxnZqoSs3H1emwr2FLDu2aRuvLzyWP0qFfRxEsTqFO/tjLPwMCAGrVqcOv67ULLnT5xFo9qVZnrt4AOzb6iT5f+rFu1gZycHGWMZ01PLl+8zItnim7Xw/uPuHH1JvU+6KYWRmRkHFJpMg0aenygSx/v2m5cu/rw7+yqkmPHruDuXpGfRi+iccPv+LrLJLZv1fy92f9mm505cRY398pM+uUP2jftzIDug9mzI7RITVmybG7fi8anrrNKfsO6Lly98eKjZTv3Xo5Pm9n0+24N5yOeqHx37eZLfOq6qOQ1qld0nfl5FRmLVJpE/YbVlXkGBvp4e1fl2tWiL/zvycjIJDs7GxOTvB5OzZpuXDh/i+fPogC4f+8ZV6/ex6dR0YaKfhVFgjQe7/p1PtBlQHXvGty6dlNjXWG7Q2n+ZUtKllR/wZTJZBwKP0ibTu3Q0dHRuN73fPIdPUGaAICZRPXqYyoxJSYqptByUZFRXIl6Tau2rZizdCaRzyOZ57eQnOwcBgzvB0Dvgd+S9iaNXp37oqunS25OLkN/GEyrNi2K1CWVJgEgMTdRyZdIyhIVFV+cXSxA5Ms4tmw+St/+rRkytCM3bz7Bz3c9+gb6dOrsU2T5f7PNoiKj2L01hB59utN3UG/u3LrLglmL0DfQp02HLwutOzEpnZycXCQS1S6+uZkxcfFv1JaxMC/DtAkdcXezISsrm5B91+n//VrWLx9AbS9HAKTxb5CYqdYpMStdaJ2F8f54mklUj6eZxIToKM3/R3zhvGAsLc2oW99TmTdgcCfevEmnc/sx6OnpkpOTy8hRPWnTrhjHMt/d19TMjBg142t13L15h6ePnjD2j/GFxpw6epI3qW9o07HooYQ6im30g2GHmDNtrjI9e8lMxR/5rzJyOXzkwpObK6ecmSm//f4zenp6uFWtjDQunk1rNytP2iP7j3Iw7BB/+E2ioktFHt57xKI5SzC3kNCmo+oEWejeM/w5JW9iaNlyxWSFTj4RcnlBqcUlV56Lu3tFRo/pDkCVqo48ehTJ1s1H1Br9/7LNcnPluLlXZtiPQwCoVMWVZ4+fsXtryEeN/p78m1e0l3pRTg7mODnkLXpQs5o9r2OSCQw+ozS62t1EXuRdKSz0FNOn+CvTi5ePf1dX/uMp1/h4rgkMYX/4GVYFTcHQ0ECZf2DfWcJCT+E3+0ecXSpw/94z5swMwsLClI6dm6rUcSjsAHOnz1GmZy6e8xFdmgkL2x1KRRcnqngWPkEZvjuUOg3rYW6p+RDxQ4ptdJ+mDanqWUWZzspSTCgkSBMwt5Ao8xMTkjCTmBVaj7mFBL0Seujp6SnzHJwciJcmIJPJ0NfXZ9n8FfQa+C0t393BnV2deB39mvWBwQWM3qy5F9U+mEl9r0sqTcLCspwyPyEhBUm+u0JxsTAvh7OzrUqek5MNhw9GqI3/v2wziYUERycHlXIOTg4cP3zyo/tkWq4Uenq6SPPdaeMT0zA3Uz+hpI7qHhXYsz9vhRhzSekCdSYkFF1n02beeHq6KtNZ7yau4qVJWFjk3T0TE1IK3OXVsXbNHgIDdrFy1WQqVVZtn/lzNzBgUCdat20IgGsle6Kj4li9ancBozds6kMVT3dlWpaVpdAVn4DEIu+il5SYiGm+u7w6Mt5mcPTAYQaOGFxozOuo11y+EMG0ub5F1lcYxR6jlzIuhZ29nfJT0dkRibkZl87nneQymYxrl6/hUd290Ho8a3jw6uUrcj+YVXz5/CUSCwn6+vqAYjyV//GGnp4eubkFl7kzNi6JvUN55cfZxRZzcxPOnb2Vpysrm4hL96hR07VA+eJQ06sSz56pLhH1/NlrrG0kauP/L9vMs4aHck7jwxgrm/If3ScD/RK4u1lz5qLqBNTZi4+pWc3+o2U/5O6DaCwkZZTpGp4VCtR5+sKjIutUHE8r5cfZ2Q5z83KcO3tDGSPLyiYi4g41an78sWHQ6j0ErNjBspUTcPdwLvB9xtuC55munq7a86yUsbHKsXR0roiZuYSIc5fydMlkXI+4hkcNzwLl83Ps4BFkWTJatSu8t7UvJIxyZqbUa1S/yPoK45Mn43R0dOjW62vWB27gxJFTPHn4hBmTZ2JoZMQXbVsq46ZN9GXFwryuWOfunUhOSmHhrMW8ePaSsyfPsX5VMF16dFbGNGxSn3UB6zl78hzRr6I5ceQUW9ZvpXHzRhrp6tO3NQH+ezl8KIKHD14ycYI/RkYGtGuf12Djx65g/ry8tdNkWdncu/uce3efI5NlExObyL27z3nxPG/s3Kdfa25cf4z/yj28eB5DWOhZtm87xjfftkQT/s0269G7G7dv3mHdqg1EvojkYPhh9mwPVYkpjAHfNmB7yBW277nC46dx+M7bR/TrZHp2UUwazl16iN/+2KGMD9p0lsPH7/LsRTwPH8cyd+khDhy9Q+/udZUxfXvW48yFx/ivPcXjZ3H4rz3FuYtP6Nez6AnV/G3Wq09bAgN2cfTwRR49fMHkiUspaWSoMpaeNH4Ji+ZvVKbXBIawdNFmpkwbgY2NJdK4JKRxSaSnZShjGjetxSr/nZw8cYVXr2I5evgiG9aG0rxFbYpCcSy7Exy4jpNHT/Dk0RP8Js/AsKQhLdvkPQmYMWka/ouWFygftjsUn2aNMCmnvleSm5vLvj1htO7QhhIl/v6U2j/yHL3XgG/IzMxknu/8dz/+qMr85XNUnu/GvI5BVzdvzFLeypL5K/5i0Zwl9O82EHNLC7r16kqvAd8oY8aMG0XA0kDm+i4gMSERcwtzOn7dgQHD+mmka+DgdmRkZjF9ahApKelUq+aE/6rfVJ65RkfHq+iKjUvk6y6TlOmg1eEErQ7Hu7YbQesmAopHcAsWjWLh/K2sWLYbWzsLxo7rTfsODf/zNqvi4YbvvGmsXBRA0Mq1WNta8+NvI/miXeGPx97TtpUniclvWRZ4nFhpKpWcLfGf3xtb63IAxElTiY5JVsbLZDnMWnSAmLgUjAz1calogf/83jRpWEkZ41XNnnnTu7FgxREWrTxKBTtT5vt2L/YzdID+gzqRkZmF77RV734A5cLygIn5jqdUZWy8dfNBZLJsfhkzT6WuYd99zYjvFXMs4yYOZOmiLfhNW0VCQjIWlmZ07daKYSOK/q0GwDf9e5GZkcl837m8SUmlimdV/lq+QOUZemx0DLr5xuwvn7/g5tUb/LV8fqF1Xz5/iZjoGNp2bqeRlsIo1nLPn/OKpmIV2OIhVoEtPmIVWIFA8FkjjC4QaAHC6AKBFiCMLhBoAcLoAoEWIIwuEGgBwugCgRYgjC4QaAHC6AKBFiCMLhBoAcLoAoEWIIwuEGgBwugCgRYgjC4QaAHF+jdVgUDwv4m4owsEWoAwukCgBQijCwRagDC6QKAFCKMLBFqAMLpAoAUIowsEWoAwukCgBQijCwRawP8DMtw9RvVt0eQAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 300x200 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize_2D(a_2D * np.array([[-2], [-1], [0], [1]]), '二维数组和列向量，乘法', 5, -5)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1faa1693-7d37-43a5-b6b4-b269345bc263",
   "metadata": {},
   "source": [
    "### 三维"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 140,
   "id": "a2d0e8fe-d50d-4516-9fd3-056e4c2f4e25",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[[-30, -29, -28, -27, -26],\n",
       "        [-25, -24, -23, -22, -21],\n",
       "        [-20, -19, -18, -17, -16],\n",
       "        [-15, -14, -13, -12, -11]],\n",
       "\n",
       "       [[-10,  -9,  -8,  -7,  -6],\n",
       "        [ -5,  -4,  -3,  -2,  -1],\n",
       "        [  0,   1,   2,   3,   4],\n",
       "        [  5,   6,   7,   8,   9]],\n",
       "\n",
       "       [[ 10,  11,  12,  13,  14],\n",
       "        [ 15,  16,  17,  18,  19],\n",
       "        [ 20,  21,  22,  23,  24],\n",
       "        [ 25,  26,  27,  28,  29]]])"
      ]
     },
     "execution_count": 140,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "A_3D = np.arange(-30, 30).reshape(3,4,5)\n",
    "A_3D"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 141,
   "id": "dd59453d-ef84-41c1-9180-047b5760c9c6",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[[-28, -27, -26, -25, -24],\n",
       "        [-23, -22, -21, -20, -19],\n",
       "        [-18, -17, -16, -15, -14],\n",
       "        [-13, -12, -11, -10,  -9]],\n",
       "\n",
       "       [[ -8,  -7,  -6,  -5,  -4],\n",
       "        [ -3,  -2,  -1,   0,   1],\n",
       "        [  2,   3,   4,   5,   6],\n",
       "        [  7,   8,   9,  10,  11]],\n",
       "\n",
       "       [[ 12,  13,  14,  15,  16],\n",
       "        [ 17,  18,  19,  20,  21],\n",
       "        [ 22,  23,  24,  25,  26],\n",
       "        [ 27,  28,  29,  30,  31]]])"
      ]
     },
     "execution_count": 141,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "A_3D + 2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 142,
   "id": "23fb9f19-7755-4f7c-8f78-938bc40ceb5e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[[-29, -27, -25, -23, -21],\n",
       "        [-24, -22, -20, -18, -16],\n",
       "        [-19, -17, -15, -13, -11],\n",
       "        [-14, -12, -10,  -8,  -6]],\n",
       "\n",
       "       [[ -9,  -7,  -5,  -3,  -1],\n",
       "        [ -4,  -2,   0,   2,   4],\n",
       "        [  1,   3,   5,   7,   9],\n",
       "        [  6,   8,  10,  12,  14]],\n",
       "\n",
       "       [[ 11,  13,  15,  17,  19],\n",
       "        [ 16,  18,  20,  22,  24],\n",
       "        [ 21,  23,  25,  27,  29],\n",
       "        [ 26,  28,  30,  32,  34]]])"
      ]
     },
     "execution_count": 142,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "A_3D + np.arange(1,5+1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 143,
   "id": "9dedd238-bd27-4d4d-93dc-863472a0aa67",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[[1, 2, 3, 4, 5]]])"
      ]
     },
     "execution_count": 143,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.array([[[1, 2, 3, 4, 5]]])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 144,
   "id": "1c5b56a3-15cf-418f-9d55-551eaaef7ea9",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[[-29, -27, -25, -23, -21],\n",
       "        [-24, -22, -20, -18, -16],\n",
       "        [-19, -17, -15, -13, -11],\n",
       "        [-14, -12, -10,  -8,  -6]],\n",
       "\n",
       "       [[ -9,  -7,  -5,  -3,  -1],\n",
       "        [ -4,  -2,   0,   2,   4],\n",
       "        [  1,   3,   5,   7,   9],\n",
       "        [  6,   8,  10,  12,  14]],\n",
       "\n",
       "       [[ 11,  13,  15,  17,  19],\n",
       "        [ 16,  18,  20,  22,  24],\n",
       "        [ 21,  23,  25,  27,  29],\n",
       "        [ 26,  28,  30,  32,  34]]])"
      ]
     },
     "execution_count": 144,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "A_3D + np.array([[[1, 2, 3, 4, 5]]])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 145,
   "id": "c143b996-6565-4b7c-b443-166b0ca02fb8",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[[1]],\n",
       "\n",
       "       [[2]],\n",
       "\n",
       "       [[3]]])"
      ]
     },
     "execution_count": 145,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.array([[[1]],[[2]],[[3]]])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 146,
   "id": "ff058c7c-888f-4689-9e62-4d5ab87215c7",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[[-29, -28, -27, -26, -25],\n",
       "        [-24, -23, -22, -21, -20],\n",
       "        [-19, -18, -17, -16, -15],\n",
       "        [-14, -13, -12, -11, -10]],\n",
       "\n",
       "       [[ -8,  -7,  -6,  -5,  -4],\n",
       "        [ -3,  -2,  -1,   0,   1],\n",
       "        [  2,   3,   4,   5,   6],\n",
       "        [  7,   8,   9,  10,  11]],\n",
       "\n",
       "       [[ 13,  14,  15,  16,  17],\n",
       "        [ 18,  19,  20,  21,  22],\n",
       "        [ 23,  24,  25,  26,  27],\n",
       "        [ 28,  29,  30,  31,  32]]])"
      ]
     },
     "execution_count": 146,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "A_3D + np.array([[[1]],[[2]],[[3]]])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 147,
   "id": "853fc983-4ba0-40f4-bd1e-c1e59586f421",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[[1],\n",
       "        [2],\n",
       "        [3],\n",
       "        [4]]])"
      ]
     },
     "execution_count": 147,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.array([[[1],[2],[3],[4]]])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 148,
   "id": "79e42eee-efe6-408b-b9b9-d037e93d6e08",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[[-29, -28, -27, -26, -25],\n",
       "        [-23, -22, -21, -20, -19],\n",
       "        [-17, -16, -15, -14, -13],\n",
       "        [-11, -10,  -9,  -8,  -7]],\n",
       "\n",
       "       [[ -9,  -8,  -7,  -6,  -5],\n",
       "        [ -3,  -2,  -1,   0,   1],\n",
       "        [  3,   4,   5,   6,   7],\n",
       "        [  9,  10,  11,  12,  13]],\n",
       "\n",
       "       [[ 11,  12,  13,  14,  15],\n",
       "        [ 17,  18,  19,  20,  21],\n",
       "        [ 23,  24,  25,  26,  27],\n",
       "        [ 29,  30,  31,  32,  33]]])"
      ]
     },
     "execution_count": 148,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "A_3D + np.array([[[1],[2],[3], [4]]])"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2e48ac2a-1bcd-4f7e-849e-a5d35c58d82b",
   "metadata": {},
   "source": [
    "## 数学函数\n",
    "NumPy有大量数学函数，这个笔记我们仅仅选取几个常用的数学函数，并可视化函数图形。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 149,
   "id": "86b2bd20-841e-4edf-b5f1-46fc0c17f27d",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([-4. , -3.9, -3.8, -3.7, -3.6, -3.5, -3.4, -3.3, -3.2, -3.1, -3. ,\n",
       "       -2.9, -2.8, -2.7, -2.6, -2.5, -2.4, -2.3, -2.2, -2.1, -2. , -1.9,\n",
       "       -1.8, -1.7, -1.6, -1.5, -1.4, -1.3, -1.2, -1.1, -1. , -0.9, -0.8,\n",
       "       -0.7, -0.6, -0.5, -0.4, -0.3, -0.2, -0.1,  0. ,  0.1,  0.2,  0.3,\n",
       "        0.4,  0.5,  0.6,  0.7,  0.8,  0.9,  1. ,  1.1,  1.2,  1.3,  1.4,\n",
       "        1.5,  1.6,  1.7,  1.8,  1.9,  2. ,  2.1,  2.2,  2.3,  2.4,  2.5,\n",
       "        2.6,  2.7,  2.8,  2.9,  3. ,  3.1,  3.2,  3.3,  3.4,  3.5,  3.6,\n",
       "        3.7,  3.8,  3.9,  4. ])"
      ]
     },
     "execution_count": 149,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x_array = np.linspace(-4,4,81)\n",
    "x_array"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 154,
   "id": "c633e9f9-f6ef-4f05-b6c8-b3e6c82af19e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAUgAAAFICAYAAAAyFGczAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAR2klEQVR4nO3d/2sbd57H8ZcSD1YULMlW2q7TuLkj0F9yC2XbQn/JDzb4t/v1rq6TzV3TpVBo/4/9PYUry8Yt29Zr2D/B0P6wbFma9A6O5peDEFoTeS9UtiWfvpjBmfshtVdx9JE10kjznpnn4yfTzg8vT5RnJGusyQVBEAgA8JwzcQ8AAKsIJAA4EEgAcCCQAOBAIAHAgUACgAOBBAAHAgkADlODHPTkyRNVq1XNzMwol8uNexMAjE0QBNrf39fFixd15kz/54gDBbJarWphYSGScQBgwdbWli5dutT3mIECOTMzI0l6+YPPtPDSnH5/81f6RTE/+sII+L6vr7/+WouLi/I8L+45x6zukmxuazabunz5siTpwYMHKpVKMS96lsVzJtndJdna9rdGR7/5w3/q0V5HL+UPde+37xx3rZ+BAnn0snrhpTltt8/ogz/9jzbef0sXy+dGWx0B3/dVKBRUqVRi/0PoZnWXZHNbPv/3f3Dn5uZULpfjG9ODxXMm2d0l2dlW3Wvrgz/9t7bbZ/QP8xf0H//yqv7ptxrox4Wh3qT5/c1f6ZW5gn7caWnld39Vda899GgAGLfqXlsrv/urftxp6ZW5gjbefyvUq99QgfxFMa+N998ikgDM6xXHsK96Q1/mc7F8jkgCMC2KOEpDXgdJJAFYFVUcpREuFCeSAKyJMo7SiL9JQyQBWBF1HKUIftWQSAKI2zjiKEX0u9hEEkBcxhVHKcIPqyCSACZtnHGUIv40HyIJYFLGHUdpDB93RiQBjNsk4iiN6fMgiSSAcZlUHKUxfmAukQQQtUnGURrzJ4oTSQBRmXQcpQnccuFi+Zz+SCQBjCCOOEoTuifNy0QSwJDiiqM0wZt2EUkAYcUZR2nCdzUkkgAGFXccpRhu+0okAZzGQhylmO6LTSQBuFiJoxRTIKWnkeQSIADdLMVRijGQEtdJAvg7a3GUYg6kRCQB2IyjZCCQEpEEssxqHCUjgZSIJJBFluMoGQqkRCSBLLEeR8lYICUiCWRBEuIoGQykRCSBNEtKHCWjgZSIJJBGSYqjZDiQEpEE0iRpcZSMB1IikkAaJDGOUgICKRFJIMm2651ExlFKSCAlIgkk0e6BdP3O3UTGUUpQIKXet2/YrnfingWgh+16R7fvn9XWbjuRcZQSFkjp+Y9Ku37nrnYP4l4FoFt1r63rd+6qdpDTwuy5RMZRkqbCHOz7vnzfH9eWgb14fkqfv/u6bqzd09ZuW7dbZ3Xt2r5euTAT97RjR+fJwvk6yeK27i1WHmfdLJ4zyeau7XpH1+/c1dZuW5XpQJ/dfE0vnJ8yszHMjlwQBMFpBzUaDZVKJa2vr6tQKIw0Lko7B9LH98+qdpBTZTrQR1cPNTsd9yoMo9PpaGVlRZK0sbGhfD4f8yIMY/dAum3872Sr1dLq6qrq9bqKxWLfY0MFcnt7W5VKJbKhUfjhp329/ck3x0/lv3zvTc2X4v/L5fu+Njc3tby8LM/z4p7zDIvbms2mZmdnJUmPHz9WuVyOd9AJFs+ZZGtX9zPHhdlz+uzma/r+2z+b2NatVqtpfn5+oECGeonteZ6pb1SSLl+Y0YdXD7X2cEZbu23dWLtn6ucdFs/ZEUvbundY2nWS1W1x76rutY9/5HX0hswL56f0vYFtJ4XZkrg3aXqZm5a+uPUGlwABMUjqReCDSEUgJa6TBOKQ5jhKKQqkRCSBSUp7HKWUBVIiksAkZCGOUgoDKRFJYJyyEkcppYGUev9aIpEERpOlOEopDqT0/K8lEklgeFmLo5TyQEpEEohCFuMoZSCQEpEERpHVOEoZCaREJIFhZDmOUoYCKRFJIIysx1HKWCAlIgkM4hFxlJTBQEpEEujn0V5b7xBHSRkNpEQkgV6I47MyG0iJSALdiOPzMh1IiUgCEnF0yXwgJSKJbCOObgTyZ0QSWUQc+yOQXYgksqRKHE9FIE8gksgCLgIfDIHs4WU+TxIpRhwHRyAd+NBdpBFxDIdA9kEkkSbEMTwCeQoiiTQgjsMhkAMgkkgy4jg8AjkgIokkIo6jIZAhEEkkCXEcHYEMiUgiCYhjNAjkEIgkLCOO0SGQQyKSsIg4RotAjoBIwhJukxA9AjkiIgkL+OCJ8SCQEbjY4wMutuuduGchI3YOpBtr94jjGBDIiJz8FKDrd+5q9yDuVUi76l5bH98/q63dNnEcg6kwB/u+L9/3x7VlKEd7LOx68fyUPn/3dd1Yu6et3bZut87q2rV9vXJhJu5pz7B0zo50b+FxNpjqXls31u6qdpDTwmxeX9x6Qy+cnzKz0eI5k8LtyQVBEJx2UKPRUKlU0vr6ugqFwkjjsmDnQPr4/lnVDnKqTAf66OqhZqfjXmVbp9PRysqKJGljY0P5fD7mRbbxGBteq9XS6uqq6vW6isVi32NDBXJ7e1uVSiWyoVHwfV+bm5taXl6W53lxzzn2w0/7evuTb37+1/2cvnzvTc2XbPylt3jOms2mZmdnJUmPHz9WuVyOd9AJls7Z02eOT1+lLMzm9d4//p/+9Z/j33WSpXPWrVaraX5+fqBAhnqJ7XmeqW+0m7Vtly/M6MOrh1p7OKOt3acPaGs/H7J0zrp3WNp1UtzbHu219etPvzv+meMXt97Qf/3lq9h39WNtW5gtvEkzRnPT0he33uASIESi16U8Vl6VpBWBHDOuk0QU+A2ZeBDICSCSGAVxjA+BnBAiiWEQx3gRyAkikgiDOMaPQE4YkcQgiKMNBDIGRBL9EEc7CGRMiCR6IY62EMgYEUl0I472EMiYEUlIxNEqAmkAkcw24mgXgTSCSGYTcbSNQBpCJLOFe8jYRyCNIZLZ8Ih7yCQCgTSo1z1uiGR6EMfkIJBGnbzHDZFMB+KYLATSMCKZLsQxeQikcUQyHYhjMhHIBCCSyUYck4tAJgSRTKZet0kgjslBIBPkZS4BShQuAk8+ApkwXCeZDMQxHQhkAhFJ24hjehDIhCKSNhHHdCGQCUYkbSGO6UMgE45I2kAc04lApgCRjBdxTC8CmRJEMh7EMd0IZIoQyckijulHIFOGSE4GccwGAplCRHK8iGN2EMiUIpLjQRyzhUCmGJGM1s6BdGPtHnHMEAKZcr1u37Bd78Q9K3Gqe219fP+stnbbxDFDCGQGnPyotOt37mr3IO5VyfFor60ba/dUO8hpYfYcccyQqTAH+74v3/fHtWUoR3vY1d+L56f0+buv68baPW3ttnW7dVbXru3rlQszcU+T9Ox5svQ4q/4cx63dtirTgT67+ZpeOD9lZp+1x1k3q9vC7MkFQRCcdlCj0VCpVNL6+roKhcJI4xCvnQPp4/tnVTvIqTId6KOrh5qdjnuV1Ol0tLKyIkna2NhQPp+PeZHdc4XRtFotra6uql6vq1gs9j02VCC3t7dVqVQiGxoF3/e1ubmp5eVleZ4X95xjVndJ0g8/7evtT745fsn45Xtvar4Ub5CazaZmZ2clSY8fP1a5XI51T/czx4XZc/rs5mv6/ts/m/vztPw4s7qtVqtpfn5+oECGeonteZ6pb7Sb1W0Wd12+MKMPrx5q7eGMtnafhiDun6t1n6O4z1l1r61ff/rdM2/IvHB+St8b2OZidZdkb1uYLbxJk1Fz09IXt97gEqATuM4R3QhkhnGd5LOII04ikBlHJJ8ijuiFQCLzkSSOcCGQkJTdSBJH9EMgcSxrkSSOOA2BxDOyEkniiEEQSDwn7ZEkjhgUgURPaY0kcUQYBBJOaYskcURYBBJ9pSWSxBHDIJA4VdIj+Yg4YkgEEgNJaiQf7bX1DnHEkAgkBtbr9g2WI0kcMSoCiVBO3r7BaiSJI6JAIBGa9UgSR0SFQGIoViNJHBElAomhWYskcUTUCCRGYiWSVeKIMSCQGFnckeQicIwLgUQkXo7pOkniiHEikIjMpC8mJ44YNwKJSE0qksQRk0AgEblxR5I4YlIIJMZiXJEkjpgkAomxiTqSxBGTRiAxVlFFkjgiDgQSYzdqJIkj4kIgMRHDRpI4Ik4EEhMTNpLEEXEjkJioQSNJHGEBgcTE9Yrkdlck/1bvEEeYQCARi5O3b/i3T789/n+3/vAdcYQJU2EObjabyufz49oyFN/31el01Gw25Xle3HOOWd0l2dlW9qQ713+pf//0W/3wv7vH//3Hx3u6/NKs1q7/UiXviZrNZmwbj1g5ZydZ3SXZ3Rbm8ZQLgiA47aBGo6FSqTTSKACwpF6vq1gs9j2Gl9gA4BDqJfaDBw80Nzc3ri1D8X1fX331lZaWlkw9jbe6S7K5rdls6tKlS5Kkhw8fqlwuxzvoBIvnTLK7S7K7bWdnR1euXBno2FCBLJVKJh+4+Xxe5XLZ1B+C1V2SzW3dO8rlMo+zAVndJdnddnh4OPCxvMQGAAcCCQAOBBIAHAgkADgQSABwIJAA4EAgAcCBQAKAA4EEAAcCCQAOBBIAHAgkADgQSABwIJAA4EAgAcCBQAKAA4EEAAcCCQAOBBIAHAgkADgQSABwIJAA4EAgAcCBQAKAA4EEAAcCCQAOBBIAHAgkADgQSABwIJAA4EAgAcCBQAKAA4EEAAcCCQAOBBIAHKbCHOz7vnzfH9eWoRztYdfgLG7r3sLjbHBWd0l2t4XZkwuCIDjtoEajoVKppPX1dRUKhZHGAb10Oh2trKxIkjY2NpTP52NehLRqtVpaXV1VvV5XsVjse2yoZ5CLi4uqVCojjYua7/va3NzU8vKyPM+Le84xq7skm9uazebx10tLSyqXy/GN6cHiOZPs7pLsbqvVagMfGyqQnueZ+ka7Wd1mdZdka1v3Dku7TrK6zeouyd62MFt4kwYAHAgkADgQSABwIJAA4EAgAcCBQAKAA4EEAAcCCQAOBBIAHAgkADgQSABwIJAA4EAgAcCBQAKAA4EEAAcCCQAOBBIAHAgkADgQSABwIJAA4EAgAcCBQAKAA4EEAAcCCQAOBBIAHAgkADgQSABwIJAA4EAgAcCBQAKAA4EEAAcCCQAOBBIAHAgkADhMhTnY9335vj+uLUM52sOuwVnc1r2Fx9ngrO6S7G4LsycXBEFw2kGNRkOlUknr6+sqFAojjQN66XQ6WllZkSRtbGwon8/HvAhp1Wq1tLq6qnq9rmKx2PfYUM8gFxcXValURhoXNd/3tbm5qeXlZXmeF/ecY1Z3STa3NZvN46+XlpZULpfjG9ODxXMm2d0l2d1Wq9UGPjZUID3PM/WNdrO6zeouyda27h2Wdp1kdZvVXZK9bWG28CYNADgQSABwIJAA4EAgAcCBQAKAA4EEAAcCCQAOBBIAHAgkADgQSABwIJAA4EAgAcCBQAKAA4EEAAcCCQAOBBIAHAgkADgQSABwIJAA4EAgAcCBQAKAA4EEAAcCCQAOBBIAHAgkADgQSABwIJAA4EAgAcCBQAKAA4EEAAcCCQAOBBIAHAgkADgQSABwIJAA4DAV5mDf9+X7/ri2DOVoD7sGZ3Fb9xYeZ4Ozukuyuy3MnlwQBMFpBzUaDZVKJa2vr6tQKIw0Duil0+loZWVFkrSxsaF8Ph/zIqRVq9XS6uqq6vW6isVi32NDPYNcXFxUpVIZaVzUfN/X5uamlpeX5Xle3HOOWd0l2dzWbDaPv15aWlK5XI5vTA8Wz5lkd5dkd1utVhv42FCB9DzP1Dfazeo2q7skW9u6d1jadZLVbVZ3Sfa2hdnCmzQA4EAgAcCBQAKAA4EEAAcCCQAOBBIAHAgkADgQSABwIJAA4EAgAcCBQAKAA4EEAAcCCQAOBBIAHAgkADgQSABwIJAA4EAgAcCBQAKAA4EEAAcCCQAOBBIAHAgkADgQSABwIJAA4EAgAcCBQAKAA4EEAAcCCQAOBBIAHAgkADgQSABwIJAA4EAgAcBhapCDgiCQJO3s7Ix1zDB831er1VKtVpPneXHPOWZ1l2RzW7PZPP56Z2dHh4eHMa55nsVzJtndJdnddtSxo671M1Ag9/f3JUmvvvrqCLOAwVy5ciXuCciA/f19lUqlvsfkggEy+uTJE1WrVc3MzCiXy0U2EAAmLQgC7e/v6+LFizpzpv9PGQcKJABkEW/SAIADgQQABwIJAA4EEgAcCCQAOBBIAHAgkADg8P/onpoiQANQCwAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 400x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "title = '绝对值函数'\n",
    "visualize_fx(x_array, np.abs(x_array), title)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 155,
   "id": "a7a64cec-356c-4045-8d5f-29e4d6ca1d86",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 400x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "title = '正弦函数'\n",
    "visualize_fx(x_array, np.sin(x_array), title)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 156,
   "id": "015d8970-0032-499e-b4b7-9dd1fe89bf55",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 400x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "title = '余弦函数'\n",
    "visualize_fx(x_array, np.cos(x_array), title)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 157,
   "id": "2e901584-7e40-4940-aaa3-60db8a936466",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAUgAAAFICAYAAAAyFGczAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAYv0lEQVR4nO3de3Scd2Hm8WdGM9JoZM2MNfIltnyJ5djGzsVxnKQxJFgCbSilDSUNCBVIabt7aNmzu6fAdk93c3ZPum3YbQtlt4fSnuwutFSolADlkhAEOAmQux2cxE7s2Jav8k0jSyPNaKR3Zt79Q5YqJ/pJM9LI729G3885Pp7Ae5JHI+l75vqOz3VdVwCAt/B7PQAAbEUgAcCAQAKAAYEEAAMCCQAGBBIADAgkABgQSAAwCBRyUD6fV29vr+rr6+Xz+RZ6EwAsGNd1NTQ0pFWrVsnvn/k2YkGB7O3t1Zo1a0oyDgBscOrUKTU1Nc14TEGBrK+vlyQdPnxYDQ0N819WQo7jaM+ePWppaVEwGPR6ziRbd0l2bkulUlq3bp0k6ejRo4pGox4vutJcrrPewRH9yv9+RlV+n/b8wZ2qDxX067bgu64WW7f19/dr06ZNk12bSUHfsYm71Q0NDYrH4/NbV2KO4ygcDisej1v1TbB1l2TntlAoNHm5oaFBsVjMuzHTmMt19pOeU/LXhLV9bUzrV6+wZtfVYvM2SQU9XMiTNMACefpoQpL09uZGj5dgrggksABc19XTR/skSbua7brXhcIRSGABHOtL6XxyVNUBv3asW+r1HMwRgQQWwNNHxm897ly3VKFglcdrMFcEElgAE48/cve6vBFIoMTyeVfPHBsP5B08QVPWCCRQYgfPJjWQdrSkJqCbmux6PSeKQyCBEnvm8t3r265tUKCKX7FyxncPKDFe3lM5CCRQQmPZvJ7v6Zck7eLxx7JHIIESevFEv1JjOTUuqdaWlbO/1xd2I5BACT1x6KIk6a5Ny+T3c2rAckcggRJ64tAFSVLL5uUeL0EpEEigRM4MjOjw+WH5fdKd1/H4YyUgkECJTNx6vHntUsXC1R6vQSkQSKBEJh5/bNm8zOMlKBUCCZTAaDY3eYKK3Tz+WDEIJFACLx6/dPnlPTXaek3E6zkoEQIJlMDE44/v5OU9FYVAAiUw+fjjFh5/rCQEEpin05fSeuPC5Zf3bCSQlYRAAvM0cetxx9qliobt+/Q+zB2BBObpX+5e8+x1pSGQwDyMjOX0syPjgdzN6x8rDoEE5uHJwxeVcfJaHavl5T0ViEAC8/DDA+ckSXdvWymfj5f3VBoCCcyRk8vrR6+dlyTdvW2Fx2uwEAgkMEfPHetXMpNVvK5aO9c3eD0HC4BAAnP0+OW71+9+2wpV8e6ZikQggTnI51398ODlxx+v5+51pSKQwBzsPz2g88lR1VVX8eFcFYxAAnPw+IHxJ2d2b1muULDK4zVYKAQSKJLrule8vAeVi0ACRTpyYVjH+lKqrvJz9vAKRyCBIk08e71rY1z1IU5OUckCxRzsOI4cx1moLXMysYddhbNx29Qttv+cff/ls5Kkd29Z5vlOG7+XE2zdVswen+u67mwHJZNJRaNRdXZ2KhwOz2scMJ1MJqP29nZJUldXl0KhkMeLpncuLT20P6Aqn6s/viWnOm5Alp10Oq2Ojg4NDg4qEpn5/fNF3YJsaWlRPB6f17hScxxH3d3damtrUzBoz0+rrbskO7elUqnJy62trYrFYt6NmcbEdXYp0izphO7atEz33bPD61lWfi8n2LotkUgUfGxRgQwGg1Z9oVPZus3WXZJd26busGnXVK4rPXpg/LNn3n9zk1Ubbb3OJPu2FbOFJ2mAAp0clk72j6g2WKW2rbx7ZjEgkECB9ibGf13atq5QuLqoO18oUwQSKEAu7+qlvvETUtyzfZXHa3C1EEigAM/19Cvp+BStDejO63hx+GJBIIECfO+V8ReHv2fbSlUH+LVZLPhOA7MYzeb0g8snp/jVG3nv9WJCIIFZPHnoooYyWUWrXd26bqnXc3AVEUhgFo/sOy1Jujnuys+ZwxcVAgnM4OLQqH782viLw29fnvd4Da42AgnM4FsvnVY27+rGpohWcRqCRYdAAgau6+ofXzglSbpvR5PHa+AFAgkY7Dt5SUcvplQbrNKv3MCz14sRgQQMJm49vveGa1Qf4q2FixGBBKYxPJrV9y6fGPdDt67xeA28QiCBaXz/5V6lx3La0FinW9fz2sfFikAC05h8cmbnGvl8vPZxsSKQwJscuTCkfScHVOX36d5bVns9Bx4ikMCbfPXZk5Kkls3Ltbzezs/GwdVBIIEphkez+sbe8bcW3r9rncdr4DUCCUzxyN7TGh7NqnlZnd6xsdHrOfAYgQQuy+ddfeXp45Kk+3et58kZEEhgwk+P9OlYX0r1NQF9gLcWQgQSmDRx6/E3djZpSQ3vnAGBBCRJx/tS2nPognw+6f471ns9B5YgkICkv3vmhFxX2r1pmdY31nk9B5YgkFj0UqNZ/dOL4++cuX/Xem/HwCoEEove154/qaHRrDY01ukuPtIVUxBILGqj2Zwe/mmPJOnf3LWBz5zBFQgkFrVvv3RG55IZrYjU6Nd38L5rXIlAYtHK5V196cljkqTffccG1QSqPF4E2xBILFo/ePWcevpSitYG9eHb13o9BxYikFiUXNfVF584Imn8mWteGI7pEEgsSk+90acDvUnVBqv0cV7aAwMCiUXpi3vGbz1++La1WlpX7fEa2Kqo+xWO48hxnIXaMicTe9hVOBu3Td2y0D9nz/X067mefgWrfPqtO9YU9N+y8TqT7N0l2butmD0+13Xd2Q5KJpOKRqPq7OxUOBye1zhgOplMRu3t7ZKkrq4uhUILcyZv15W+cKBKPUM+vX1FXh/ckF+Q/w7slU6n1dHRocHBQUUikRmPLeoWZEtLi+Lx+LzGlZrjOOru7lZbW5uCwaDXcybZukuyc1sqlZq83NraqlgstiD/nScPX1TPsy+pJuDX//jYXVoRKSzENl5nkr27JHu3JRKJgo8tKpDBYNCqL3QqW7fZukuya9vUHQu1K5939fkfH5U0/sx1U7y+6H+HTdfZVLbukuzbVswWnqTBovHYq+d0oDepJTUBfeKdzV7PQRkgkFgUsrm8Ptd9SJL0O++4Vg08c40CEEgsCt966YyOXkwpFg7qd++81us5KBMEEhUv4+T0lz96Q5L0+7ubVR+y5/Ew2I1AouI9/NNjOjMwomuiIX30l9Z7PQdlhECiop0bzOiLT4w/c/2ffnmLaqs5Yw8KRyBR0f7nD15XeiynW9Yt1a/dtMrrOSgzBBIVa9/JS/rmS2ckSf/1V7fK5+Ns4SgOgURFyuddPfjdg5Kk+25p0o1NMW8HoSwRSFSkb//ijH5xakB11VX6zHs2ez0HZYpAouIMph396aOvS5L+bet1Wl6/MCe+QOUjkKg4f/roa+obHlXzsjr99jvWez0HZYxAoqI8fbRP//jiKUnSZ++9kQ/iwrwQSFSMjJPTH33zFUnSb96+Vreub/B4EcodgUTF+F8/fkPHE2mtiNToD395i9dzUAEIJCrCa2eT+tunxj/j+sF7rleE91ujBAgkyt5oNqdPfX2/snlX79m2UndvW+n1JFQIAomy97nuwzp4Nqml4aAevGeb13NQQQgkytozRxOTd60/e++NWl7gZ8wAhSCQKFuDaUd/8PVfyHWl9lvXcNcaJUcgUbYe+OdXdXYwo/XxsB5431av56ACEUiUpUf2ntZ39veqyu/T5z+0XXU1RX1AJ1AQAomy89rZpP7zt8dfEP7v33Wdbl671ONFqFQEEmVlcMTRJ766Vxknr7s2LdMnWzZ6PQkVjECibOTzrj719f06kUhrdaxWX/jQdlX5OQkuFg6BRNn46yeP6kevnVd1lV9//ZEdWspnW2OBEUiUhScOXdBf/PCQJOnBe7ZxhnBcFQQS1jvYm9Qn/2Gf8q70oZ1r1H7bWq8nYZEgkLDaucGMfvvLLyg1ltMdG+L64/df7/UkLCIEEtZKjWb1O195QeeSGTUvq9OXPnKLqgP8yOLq4acNVsrm8vp3X3tJB3qTitdV68sfv03RMKcww9VFIGGdfN7Vf/zGy/rx6xdUE/Dr4ft3ak1D2OtZWIR4fxas8yePHdI3X0moyu/TX3Xs4J0y8Ay3IGGdf9p7Rj6f9LkP3qS2rSu8noNFjEDCSg/9+g26Z/tqr2dgkSvqLrbjOHIcZ6G2zMnEHnYVzrZtruvqc4+/NvnPn3rXBt178zXW7JPsu84m2LpLsndbMXt8ruu6sx2UTCYVjUbV2dmpcJgHy1E6rit987hfT5wc06nP/4YkqaurS6EQZwbHwkin0+ro6NDg4KAikciMxxZ1C7KlpUXxeHxe40rNcRx1d3erra1NwaA9LwOxdZdkz7Zc3tUD3zmop86dueJ/b21tVSwW82aUgS3X2ZvZukuyd1sikSj42KICGQwGrfpCp7J1m627JG+3ZZycPvXIfn3/5bPy+6T//oEb9NHPe79rNrZus3WXZN+2YrbwMh9cdf2pMf3rv3tRe09cUsDv0xfab9bu5pnv6gBeIJC4qo5dHNbHv/yCTiTSqg8F9DcfuUW7NjYqlUp5PQ14CwKJq+bZYwl94qt7NZB21LS0Vv/vt27VdSvqvZ4FGBFILDjXdfV/ftajhx57Xbm8q5vWxPTwx3ZqWX2N19OAGRFILKjh0az+8Bsv6/uvnJUk3bN9lT77gRtVW13l8TJgdgQSC+bw+SH93lf36ujFlAJ+nx5431Z97I518vn4HBmUBwKJknNdV195+rgeeux1jWbzWhGp0Rd/8xbdso6TTqC8EEiU1IVkRp/+xst66vBFSdI7Ny3Tn993E483oiwRSJSE67r67stn9d++c0D9qTHVBPz6o/e+jbvUKGsEEvN2ZmBE/+Vbr2jPofFbjVuviegL7dt5CQ/KHoHEnGVzef39syf0Z48fUnosp+oqvz7ZslG/t7uZz45BRSCQmJOfH+nTg989qEPnhyRJt65fqoc+cKM2Ll/i8TKgdAgkinIykdafPHpQjx84L0mKhYP6zN2b9eFb18rv57FGVBYCiYJcSGb0V3uO6GvPn5STc1Xl9+mjv7RO/+Hd1ykWrvZ6HrAgCCRmNJAe05eePKYvP92jjJOXJN15XaMeeN9WbeJJGFQ4AolpXUhm9PDPevQPz55QaiwnSdqxNqZP371Zu5obPV4HXB0EElfo6Uvpb586pkf2ntZYbvwW49uuiejT/2qTWrcs5zWNWFQIJJTPu3rqjYv6ytPHJ1/LKEk71y3V77c0q2UzYcTiRCAXsURqTN975ZQ6nzupY33/csLa1i3L9Yl3Nuu2axs8XAd4j0AuMtlcXk8evqj/e8ivTz//pJzc+Ida1tcEdN/ONfrYHeu0vrHO45WAHQjkIuC6rvadHNB39/fqey+fVd/wqCS/JFc3NkX1wZ1r9P6bV2tJDT8OwFT8RlSofN7VvpOX9PiBc3rs1XM6fWlk8v9bGg7qhsioPnPv23XDGu5GAyYEsoKkRrP6+ZE+7Tl0Qd0HL1y+pTguXF2lu7et1K/dtEq3r4+q+/EfaMtKXscIzIRAlrF83tXBs0n9/Eifnnrjop7v6Z98TFGS6kMBvWvLct29baV2b14++TEHjuN4NRkoKwSyjOTyrl4/l9QLPf169li/nu1JaCB9ZezWxcPavWmZWt+2QndsiHNWHWAeCKTF+lNj2n96QPtPDWjfyQHtO3FJw6PZK45ZUhPQ7dc26O0bG9WyZbmu5RlooGQIpCUuDo3qQO+gDvQmdbA3qVd7B3UikX7LcfU1Ae1Yt1S3XdugXc1x3bA6qkAVtxKBhUAgr7JLqTEdvTisIxeGdej8kA6dG9Lh80PqGx6b9vgNy+q0vSmm7Wtj2rmuQZtX1quK04oBVwWBLDHXdTU44qjnwpBe6vPp+BPHdGogo+N9KR3rS6k/NX0IfT7p2sY6bVsV1fWrItq2KqobmqKK1gav8lcAYAKBLNJYNq/zyYzOJzM6O5hR78CIegdGdGYgo9OX0jpzaURDk48TVklvHHnLv2N1rFYbltVp04p6bV5Zr80r6nXdiiUKV/PtAGzCb6SkjJPTpfSYEsNj6k+NKZEaVWJ4TBeHR3Vx6Mo/CcMtwDdbtqRaS3yj2r5xtTY0LtG6xjptaKzThmV1hBAoExXxm5pzpcERR5lhR8OjWQ1lshrKOJf/zmpwxFEy4yg5klVyxNHAyJgG0o4G0o4upceUvny+w0JVB/xaEanRykhIq2O1uiZWq1WxWq2OhbS2IaympWFVKa9HH31U733v9QoGuZsMlKMFCaTrusrmXY1l8+N/cuN/j2bzGs3mplzOa9TJKZPNK+Pkxi8745dHLv/JODmlx8b/jIzllB7LKj2WU2osq/RoTsOjWY1mA9Kze+a1OeD3KRauVuOSasWXVKtxSY3idTVaVj/+Z/nlv1dGQoqFg7Oe/su5fPZtAOWrqEB2/M1P5a+uk5PLK5d35eTzyuZcjeXG/5647OTyct3Z/32lVh3wq66mSvWhgJbUBFRfE9SSUECRUFCR2vF/jtQGFAtXK1obULQ2qKXhasXqqlVfEyjwnIeO0unZ34niOI4ymYxSqZR1tyBt3JZKpa64bMuuCTZeZ5K9uyR7t039WZuNz3VnT1kymVQ0Gp3XKACwyeDgoCKRyIzH8ApjADAo6i720aNH1dBg1+mxHMfRT37yE7W2tlp1M97WXZKd21KplJqamiRJPT09isVi3g56ExuvM8neXZK92/r7+9Xc3FzQsUUFMhqNWvmDGwqFFIvFrPom2LpLsnPb1B2xWIyfswLZukuyd1suV/irVriLDQAGBBIADAgkABgQSAAwIJAAYEAgAcCAQAKAAYEEAAMCCQAGBBIADAgkABgQSAAwIJAAYEAgAcCAQAKAAYEEAAMCCQAGBBIADAgkABgQSAAwIJAAYEAgAcCAQAKAAYEEAAMCCQAGBBIADAgkABgQSAAwIJAAYEAgAcCAQAKAAYEEAAMCCQAGBBIADAgkABgEijnYcRw5jrNQW+ZkYg+7Cmfjtqlb+DkrnK27JHu3FbPH57quO9tByWRS0WhUnZ2dCofD8xoHTCeTyai9vV2S1NXVpVAo5PEiVKp0Oq2Ojg4NDg4qEonMeGxRtyBbWloUj8fnNa7UHMdRd3e32traFAwGvZ4zydZdkp3bUqnU5OXW1lbFYjHvxkzDxutMsneXZO+2RCJR8LFFBTIYDFr1hU5l6zZbd0l2bZu6w6Zdb2brNlt3SfZtK2YLT9IAgAGBBAADAgkABgQSAAwIJAAYEEgAMCCQAGBAIAHAgEACgAGBBAADAgkABgQSAAwIJAAYEEgAMCCQAGBAIAHAgEACgAGBBAADAgkABgQSAAwIJAAYEEgAMCCQAGBAIAHAgEACgAGBBAADAgkABgQSAAwIJAAYEEgAMCCQAGBAIAHAgEACgAGBBACDQDEHO44jx3EWasucTOxhV+Fs3DZ1Cz9nhbN1l2TvtmL2+FzXdWc7KJlMKhqNqrOzU+FweF7jgOlkMhm1t7dLkrq6uhQKhTxehEqVTqfV0dGhwcFBRSKRGY8t6hZkS0uL4vH4vMaVmuM46u7uVltbm4LBoNdzJtm6S7JzWyqVmrzc2tqqWCzm3Zhp2HidSfbukuzdlkgkCj62qEAGg0GrvtCpbN1m6y7Jrm1Td9i0681s3WbrLsm+bcVs4UkaADAgkABgQCABwIBAAoABgQQAAwIJAAYEEgAMCCQAGBBIADAgkABgQCABwIBAAoABgQQAAwIJAAYEEgAMCCQAGBBIADAgkABgQCABwIBAAoABgQQAAwIJAAYEEgAMCCQAGBBIADAgkABgQCABwIBAAoABgQQAAwIJAAYEEgAMCCQAGBBIADAgkABgQCABwCBQzMGO48hxnIXaMicTe9hVOBu3Td3Cz1nhbN0l2butmD0+13Xd2Q5KJpOKRqPq7OxUOBye1zhgOplMRu3t7ZKkrq4uhUIhjxehUqXTaXV0dGhwcFCRSGTGY4u6BdnS0qJ4PD6vcaXmOI66u7vV1tamYDDo9ZxJtu6S7NyWSqUmL7e2tioWi3k3Zho2XmeSvbske7clEomCjy0qkMFg0KovdCpbt9m6S7Jr29QdNu16M1u32bpLsm9bMVt4kgYADAgkABgQSAAwIJAAYEAgAcCAQAKAAYEEAAMCCQAGBBIADAgkABgQSAAwIJAAYEAgAcCAQAKAAYEEAAMCCQAGBBIADAgkABgQSAAwIJAAYEAgAcCAQAKAAYEEAAMCCQAGBBIADAgkABgQSAAwIJAAYEAgAcCAQAKAAYEEAAMCCQAGBBIADAgkABgECjnIdV1JUn9//4KOmQvHcZROp5VIJBQMBr2eM8nWXZKd21Kp1OTl/v5+5XI5D9e8lY3XmWTvLsnebRMdm+jaTAoK5NDQkCRp06ZN85gFFKa5udnrCVgEhoaGFI1GZzzG5xaQ0Xw+r97eXtXX18vn85VsIABcba7ramhoSKtWrZLfP/OjjAUFEgAWI56kAQADAgkABgQSAAwIJAAYEEgAMCCQAGBAIAHA4P8DDZ8TnrLfzSsAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 400x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "title = '指数函数'\n",
    "visualize_fx(x_array, np.exp(x_array), title)\n",
    "# 指数函数通常特指以e为底数的指数函数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "5a980dd5-d891-4957-b1a8-a4219a1178ee",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 请大家可视化更多一元函数"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4913e51f-8fa9-4c2a-92de-0e2a66105e95",
   "metadata": {},
   "source": [
    "## 统计函数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 194,
   "id": "088f00b6-d254-4841-8287-98420072e97c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[4, 3, 3, 8, 9, 9],\n",
       "       [0, 8, 2, 4, 1, 1],\n",
       "       [7, 7, 6, 7, 8, 6],\n",
       "       [1, 9, 0, 2, 3, 7]])"
      ]
     },
     "execution_count": 194,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "A_2D = np.random.randint(0,10, size = (4,6))\n",
    "A_2D"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 195,
   "id": "442df415-f499-4110-8b3b-ce02bd3d9e9a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 300x200 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize_2D(A_2D, '二维数组', 9, 0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 158,
   "id": "aa5fbfd1-4864-4b7d-9506-912ef39c8531",
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.datasets import load_iris\n",
    "\n",
    "iris = load_iris()\n",
    "iris_data_array = iris.data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 159,
   "id": "8a2cdd20-6794-4bdb-875e-522d145bd035",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 500x500 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import seaborn as sns\n",
    "fig, ax = plt.subplots(figsize = (5,5))\n",
    "sns.heatmap(iris_data_array,   # 鸢尾花数据数组\n",
    "            cmap = 'RdYlBu_r', # 指定色谱\n",
    "            ax = ax,           # 指定轴\n",
    "            vmax = 8,          # 色谱最大值\n",
    "            vmin = 0,          # 色谱最小值\n",
    "            xticklabels = [],  # 不显示横轴标签\n",
    "            yticklabels = [],  # 不显示纵轴标签\n",
    "            cbar = True)       # 显示色谱条\n",
    "\n",
    "fig.savefig('Figures/鸢尾花数据热图.svg', format='svg')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c6def0d1-d91e-4db9-b827-012d74cc2fd4",
   "metadata": {},
   "source": [
    "### 最大值"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 196,
   "id": "012a4d97-ab4d-4f0f-8aae-77687bf51a14",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "9"
      ]
     },
     "execution_count": 196,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "A_2D.max()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 197,
   "id": "35aabe6f-c76b-4dd5-8cb4-3cc70629844c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([7, 9, 6, 8, 9, 9])"
      ]
     },
     "execution_count": 197,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "A_2D.max(axis = 0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 198,
   "id": "ad5b0f7b-f772-4c52-a400-12615d711ba2",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize_1D(A_2D.max(axis = 0), '沿axis = 0，最大值', 0, 9)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 199,
   "id": "f34934c4-127f-429c-8f95-55bd0cefee12",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([9, 8, 8, 9])"
      ]
     },
     "execution_count": 199,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "A_2D.max(axis = 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 207,
   "id": "0d37bd75-5d19-42f9-b6b2-b587b0f40a8a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[9],\n",
       "       [8],\n",
       "       [8],\n",
       "       [9]])"
      ]
     },
     "execution_count": 207,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "A_2D.max(axis = 1, keepdims = True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 208,
   "id": "7c44a88e-e7cd-48c1-a861-2810cbbcadf0",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAgMAAACGCAYAAABAOYkVAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAqlklEQVR4nO3dd2AUZfoH8O87M5tNdtMbKTTpCAgINgSkit6pp6LYvVNP7I1DT0U921kAscApyp16P5FDPTzF07MhCCKKoHQw9JKE9LrJ7s7M+/7+2CQQSELK7M7szvP5C2PyzpPJzswzz9uYEEKAEEIIIbYlmR0AIYQQQsxFyQAhhBBic5QMEEIIITZHyQAhhBBic5QMEEIIITZHyQAhhBBic5QMEEIIITZHyQAhhBBic5QMEEIIITZHyQAhhBBic5QMEEIIITZHyQAhhBBic5QMEEIIITZHyQAhhBBic5QMEEIIITZHyQAhhBBic5QMEEIIITZHyQAhhBBic4rZAYQKVzUwWQKTjuQ/Wk0tvAUlUCurITQNQggwWYYc7YQzLRnOpAQw+cj3c78K5lDAGDPjVwhbgnOAczDlyMdN6Dr08jLoFWUQfhXgOsAkMIcDUlwclKQUsKioRt8PAEyWQx5/uBOqCiiNP7d6dRX00lJwby2ga4Evygqk6BjIycmQY+OO/LwQgKaBORyhDj3scU0HGCAd9bnVfX54C0rgL6+EUFUInYMpMqSoKDhTk+BMTYR01LXS1L2LEKNFbDLAVRWSwwGhc1Tu3IeSHzagdP1WlG/ZidrcAtTmF0Gr9rTYBpNlRKenIDozDXE9uyJ52AAknz4IKcMGwhEfC8E5hBCNLnQCCE0DZBmMMejlZfBu3Qzv9i3w/boNan4+9OJC6OVlgBAttiPFxkFJS4eS3glRvfsiut8ARA8cDEdmVt1xVDCFHlBHE5wDdUmt8Pvh250D75ZN8O3YCv/+fdCKC6GXFEP4/S22w6KiIKekQklNR1S37nD2H4joAYPg7NkHLCoKQtcCyRs9oBqpv+8AQPW+3Ib7TtnGHag5dBi1eYVQK6paboQxOFOTEJOVDne3bCSfejKShw9CyumDEJ2WDCEEhK43ShgI6SgmxAnuyGEicIFwSIoMz/48HFzyBXL/uwLFP26EXlNr+PFie3ZF5qSR6HzxBHQacwYkhwKuapAc9rxAhaaBKQq41wvPmlXwrFyOmp/WQC8qNPxYUmwcYoYOh3vkGLjPGQclKbnh+HYkdB1gDEyS4N2xDdUrvkbN9yvh25UD1FVUDCMrcPbqDffZ58A9ZgKi+/ZvlIDYUf117y0qxaH/fIXcT5ajcNW6Ez/02yEmKx0ZE0ag8+8mIPP8UVBiohslIIS0V9gnA/UXoudAHna9/h4O/ucrVG7fHdIYlDg3Ms8diZOu+x2yLxwLwQUkJfJvjILzwD80DVVffoqqrz5H7c9rT/jWaSjG4Ow/ELFjJyLhd5dBTkiA0HVbPJjqEyDv1s2o+GQJPKtWQC8uCmkMcmoa3KPGIOHCyYgeMMg2SRnXdEiKDF9JOXb//QMcXPIFStZtOWG1y0iSMwqdxpyBrlf8Bt2vvqDhRYSqNaQ9wjYZ4JoGJknI++xb5Mx7F/lffhfSC7E5rs4Z6HnzFPS+7apASY/ziLs46x+2at4hlL/3Lio/+xi8ssLssMAcDrjHTkTi5dcg5pQhEftgEpxDqCqq/rcUFUsWw5ezw+yQAADOPv2QMPlKxJ1/EZjDEXGfe+DIy0fR978gZ+47OPjhl+B+1eywEJWUgJN+fzH63n09Yk/q3JCsENJaYZcMcFUDkxh2v7kEW/86H579uWaH1CTJ4UDXK36DwX+9F67OmQBD2A88rE9sfDt/RfGrL6JmjTUSsKZE9e6HlKl3Inb02IhJCoSuQ/h8KP3nAlT8+1/g1caXoY0gxcYh4bKrkPz7m8Gczoio0tQnAYc+XoZNj72M8k2/mh1S0xhD1nmjMPi56Ug6pW9gcKIceUkZMV7YJAP1F+OBJV9g48Mvoipnr9khtYrkcKDXLVdg0BN3ISohPiwvzPqPiJafi+K/vYjqZV9YNgk4VvTAwUi9ezpiBp8att0HQtMAIVD+/kKUvr3AElWY1pDiE5D8h5uROOXawJiGMEzIuK5DkmUUfrceG+6fieIfNpgdUuswhm5Tzsfg56bD3S2r7kvh/TJCgisskgHBOco35WDt1EdQ8tNms8NpFyXWjZMfvBkDHpwamIEQJjdGoWkQmorieXNQ8eH7R6ahhRnX2aOR/uBfoKSkhU1CUF+JqVr2BYpfngWtIN/skNpF6ZSJ1HsfQNy4c8Oq24xrOryHi7B26qPI+99Ks8NpF6Yo6H3rlRjy/HRIDodtBziTE7N0MsA1DRDA5ifmYdvzCwJvSGEuaejJGLFwFuL79bD0TVEIAcYYatavRcFTM6Dl55kdUocxlwupd/4JiZOvtHyVQGgauMeDwuceR/U3X5odjiFix52L9Iceh+RyW7pKUN/fnvPaImx4YPYJpyCHA3e3bJz59rPoNOaMhmubkKNZNhkQOkf55hysuf4BlG+2aP9cO0kOBwY8chsGzrgVArDcOgUN1YCXZqLiP++bHY7hYoadgU6PPwMlJRVMttZDqf5GXbXsCxTNfCqwHkMEkROTkPbAo4gbP8nsUJpUXw1Yc/2fUbD8B7PDMVyvW67EqXMepCoBOY5lk4FdC97HujueBFfNH6kbLGmjhmP0R6/CEee2zIUpdA3a4cPIve9WqPvDY1xGe0ixcch4Zg5cp51pmQpN/SqLRbP/iooP3zM5muBKuPQKpE2fAcA6q0oKLnD4q9X47op7g7JGgFXE9+2BMZ+9AVfXzLDpriTBZ6lkgOs6GIB1dz+Nna8uMjuckHB3y8Y5n76O+L49TJ8KJDhHzU8/4PCMP4FXVZoaS0hIElLvnIaka24wvXQqNA28tgb5D9yN2p9/Mi2OUIoZdjoyn38ZUozL1G6D+r/9tln/wMYHZx9ZPyOCORLjMfL9l5Ex3jrJMDGXZZIBrmnQqmux6tI7I7I81xLF7cJZC2eh80XjwSTzHkhli/6J4nkvGL9qncXFnX8ROj3yZGB5XRPeUoWuQT1wALn33Qot35pTZYNFycxG9ovz4eja1ZQuG6HrEJzjx5tmYO87H4f8+GZisoyhM+9Hv2k3mB0KsQBLJANc0+Avq8SyMdehYtsus8MxB2M4/fUn0evmKaYcvuiVWSh/921Tjm0FMaediaw5r4LJSkgTAqHr8P26Dbl33WzZdQOCTYqNQ/bcBXD2PTmk557rOoSqYcUFt6Bg2ZqQHddq+k+/CUNnPWB2GMRkpicDXNPgL63AVyOvRtXOfWaGYgnD5z2G3rdfHdKSdeELz6Di/XdDdjyrih4yDNmvLABTQpMQCF2Hd+tm5N5zM0RNTdCPZ2XM5UL2ywsQPWBQSM4913UIv4ZvJt2IolXrgn48q+tz13UY/sojZodBTGRqZxHXNKgVVfh69LWUCNRZd9dT2P2PDyB4aHK0oldmUSJQx7thPfKm3QZwHvR+Y6Fr8OVsR969U22fCACAqKlB3r1T4cvZEdgRMZjH4hxC07Hit1MpEaiTM/cd/HL/TLPDICYyLRkIrK+u45sJN6Dy1z1mhWE9QmDt1MdwaOmywF7oQTuMQOk//27rroGm1K77EfkPTwvqoCqhaVDz8wNdA57wn8NuFO7xIPfum6Edzg/6miLfTbnXdmOTTmT77H8E1nMJ0YsIsRbTkgEmSfj+2uko27DdrBCsSwisufZ+VOXsBVeNvykKXUfN9ytRMv9lw9uOBJ6V36D4teCcG8E5hN+HvPtutceMjTbilRXIve82CL8/aNWZjY+8hNyly4LSdrjb+PAc5H2+MqgvIsSaTEkGhBDY/MQ8HPwwMlZWCwbNU4MVv5kKtcoDbuDofqFpUHMP4vCj9wM2mELVXmVvv4Gqrz9vmPtvpPyHp0E9sM/wdiOFun8v8h++DzB42AzXdex/7zNse/Z1YxuOIIJzrL7yPlTvORCUFxFiXSFPBrimIXfpN9j8xLxQHzrsePbnYtUldxh2TxScQ/i8yLvvNipPt0LBkzPg37PL0JJ18bwXArs9khbVrPkOxfPmGNYeVzVUbNmJH254yLA2I5VW5cGK30yFXuu1xZoLJCCkyYDQOfxllYEL0vwZjWGhcOVP2PrM64ZclEySUPj8k1APHTAgssgnfF7kPzLdkM+q0DTUrPuRxmi0Qfm7b6Nm/VpjkjEhsPqK+6DXejvelg1U7z6An25/ghYkspGQ/qWZLOHHm2bAXxYeW7BaxZanXkXljj2BjZvaSWgaqlcuR9UXnxoYWeRT9+1ByfxX0JEZuEIICE1FwdM0datNhEDBUzMgNLXD53/jjBdpoHIb7Xt3KQ598g11F9hEyJIBrmnYu3Apcj/5JlSHjBhcVfH9tfe3e+0BwTm414vC5x43NjCbKFv0Nnw7trb7DZUxhuKXZkbEzo+hpuXnofilme3+7HNVQ+m6Ldgx5y2DI7OHtVMfg1ZTS90FNhCSZEAIAbWiGuvvfjoUh4tIZb9sw9bn3oDQ235RMklC0ey/Qi8pDkJkNsA5Dj/+ENCOB5LQNNT8si4id38MlYqPPkDNL+vanYytuf4Bepi1k/dwEdbf9RR1F9hAaP7CAtj02MvUPdBB255bAH9FZZtKpkLX4cvZgarPPwliZJFP3bcHFR++1+YFcZiioHjOs0GKyiaEQPGLz7V5MyOu6dg5/1+o3EHdAx2xd+FSlG3aQdMNI1zQkwHBOWoO5mP3gg+CfaiIp1V7sPkvc4E2dJ8yWUbx3Nk0YNMApW/Oh2hD/6nQNFR99T/4cnYEMSp78P26PTDVsw3VAa6q2Pr0a0GMyiaEwC/TZ5q+qyoJrqAnA0ySsOGhF8BVNdiHsoVdb7yHmtzDrSp7Ck1Dzfq1qFlr301YjKSXlqDs3bcgeCvfkBhDyfxXghuUjZTMf7nVXTVC17F95t/hLSwJclT2cPir1Sj4dm2HBjETawtqMiB0HRXbdmH/YhrBbhTuV7Fpxout6sNjimLoXG0ClL/7Fngr9hIQmobKj5fQNE4DqQcPoHLpklZVB9TqGmx/4c0QRGUfGx6YBamNXTUkfAS3MiBJ2D77TSpRG2z/4s/gLS5r8XuErqN280b4tm0OUVT2wD0eVPzngxM+kJiioGzx/4UoKvsoW/zOCccOcE3DrvmLoVXRwlpGKlm7CcU/bDR0RVRiHUFNBrQqD1UFgoCrKna99q8WB/QwWabdCIOk8j/vA3Lzl47QA90z6v69IYzKHtR9e1Dz808tLhPNJAk7X18cwqjsI2fuO5BCsMU0Cb2gJQNc07D77x/Qil9BsuuN98Ck5vtP9YoKVC+nvR+CQc09iJofv2+2OsBkBRUfLApxVPZR8cEisGYeSFzTkP/Fd/DsPRTiqOzhwL8/p1lhESpoyYCkKNg5n7LzYKk5dBi5nyxvcnUwoeuo+Oh9CBq0GTQV7y9qtlytlZageuXyEEdkH9XffgOttOmBgZKiIOdvVBELFu5XsXP+YppmGIGCkgwIzlH681ZU7dwXjOZJnb0Ll0JyHP9AYrKMqs//a0JE9uH5YTV0T/VxXxeaFljyuY3rEZA20DVUffkZhHZ8sqtWVCP/81UmBGUf+xb9l6YZRqAgJQMCBz/8KhhNk6Pkf7GqycqAWpAP/55dJkRkI7oGz6oVx3UVMEWBZxVVBYLNs3I5mOJo9DWuaji0dFlQtp0mR1RsyUHNwcNmh0EMFpRkQFJk5C6lPQiCTavyoGDF2kaje4WmoXr51yZGZR+eld8c11XAPR7UbvjZpIjso3bDevCaxrMFJIeCQ3TfCYmDH35Ja8dEmKAkAzW5BSjf/GswmibHyP3460abuNCbaejU/LC60Vuo0DR4Vn9LXQShoGvwfPdto8oMVzXkf0FdBKFw6JNvIDkcJ/5GEjYMTwa4X0XepyuMbpY0I+/zVY0WIBJ+P72Zhgj3VMO7ZWPDXhFMUeBZ853JUdmHZ813DZUZIQSKf9xIawuESNHKddB9frPDIAYyPBlgDgUlP9FCN6FSvfsA1MojA9l8u3KAJgZWkeDwbtkEHPV26tu+xcRo7OXocy1UDSU/bDAvGJvhqoryzTlmh0EMZHwywBhK1281ulnSgtKft0IIAaGq8G7dZHY4tuLbsQ2srlzKvV74aaGhkPHv3wvu8wEApCgH3XdCrOTHjeB+evGIFMZ3E6gqKrbsNLpZ0oKStZsDu+kpCnw76IYYSt668y2EgG/nr0ArNpAiBuEcvp2/NnTTUDIQWqXrt4I1MbWZhCfDk4GKrbtolGmIla7fAinKAcYYvDu2mR2OragH94PX1gKaBu82qsqEmm/rJoBzaJ5aVO3ab3Y4tlK6fkujwcskvBmaDHBdR2XOPiObJK1Qvftgw7/VXFqGNaSEgFaQD8gy1EMHT/z9xFBq7kGAMXj259KGaCFWvYfuNZHE2BqPzlGbV2hok0apBce/UYyfUI1K6OgOJ65DOnoiutmf2Y4aLEQRcuFHIhRcgCRMQGLogm6l2vzAOee1tRC1J95eN9Q0ITA3twifFFegSNWQFqXg0tRE3J6VCqmFN4u1lR48e6AAO2t9SI9ScHNmCq5KTw5h5K2jFhciqnsP6MVFZodynEg/91pxUSAZOJBvdihNiuT7jlbtgVZTC8UVY3YoxADGJgMSQ22+9W6IALAAh3EIftyGDCRBwWpU4lkcwkx0QzKOny9bCBWzkIuxSMDtyEAOvHgLBYiHjNMRZ8Jv0DxvQQmEENCbWa/dbAvyi/GvwjI83yMLvWOc2OLx4qE9eYiTJfw+I6XJnzno8+PmnAOYkpaEWT2z8XNVDZ7Yn49kRcGk5PgQ/wYtE9WB2RyaBZOBSD/3WnERhKZb9iUkku87QODeE3tSZ7PDIAYwNBmQFAXefOtdlH5w/IRqTEMW+sMFAJiMVKyDB1+jAlOQetzPLEM5UuDAdUgHAGTDiT3w4lOUWe6iFLoO7lehFRWYHUqTfqmqxYTEOIxNDJy3zs4o/LekAps9ze9oubiwDJlRDszolgEA6FX3IPtHfonlHkj1I9qtmAxE+rnXi4sghGiojllJpN93gMACc5QMRAbDBxB6C0uNbrLDdAAcgOOYXzcKDDmobfJndsKLQXUXcL1T4MJeeKHBen2T3O+35MMIAIbFubCm0oO9tYGH5vYaL9ZX1WBMYmyzP/NLdS1GJjT+/yMT3NhSUwuVW+z81604qJdZ77Mf6edeKyuBJEvw0X3HFN78IgidZtBEAsPnhVhxVaoYSOiNaHyEEmQjCgmQ8T2qsBteZDRRqgOACmhIOOaiTIACHUAVdCQZf+o6hgsI1XrnHgCmZqagStdx3ubdkBmgC+C+zum4ICWh2Z8p9mtISWi8M1qqQ4EmgDJNQ3qUhZZCrXtACr/1zn+kn3vhVwEm0X3HJLrPDyE4WHBWtichZPgny6o7ht2GDLyBAtyJPZAAdIcTIxCHvfC18FONB1iJJr9qFQKwaIb+aWkllpZU4IWe2egd48T2Gi+e2V+AdIeCS9MSm/051uz5t9ZfoOF9jVvvsx/p5x5cB5MY3XdMIjQNFixYkHYwPBmw6rzTTojCo+gCLzhqwZEEBa8gD+nNZOgJUFCBxhvOVEKDDCAWFt3L26LnfubBAkzNTG14G+3rikaeT8Xr+cXNPpBSoxQUH7M9c4mqQWFAotX2Uq8/7YxZbnpb5J97Flh0yKKf/Ui/7zBJsmaWQtrM+OWIrXazOEY0JCRBgQc6NqMGw+Bu8vt6Ixqb0Xia3mbU4CREQ7Hip58xQLbmuffq4rgPmsRYi8/NobExWF1R3ehrqys9GOiKgUOy4PkHwCx4/iP93DNZBoSApFirfH6sSL3vBO731ouLtJ3hyYAjrukPudk2wYON8KAQKjbDg6dxCJmIwmgE3pgWowiv4chc5fFIRAlULEQhcuHDClRgBSrwWySZ9Su0iMkyJLc1z/3YpFi8lleM5eVVOOTz48vSSrx1uAQTk4+Mjp59sAD3785t+O8r05OQ51fxzP7D2FXrw7+LyvDvojLclNn0dDgzMRa4jCR384PyzBLp515yuSF0DoXuO6ZwxMeCyTReIBIYmk4LzhGdmW5kk4apAcd7KEYpNMRCwmmIxRSkNmTb5dBRclR5Lh0O3I9sLEQRvkIFkiDjeqRbcnoPAEjOKCidMswOo0mPdsvAy4eK8MS+wyhRNaRHKbgyPQl3ZKU1fE+RqiH/qE1PujijsKBPVzxzoADvFpahk0PBI90yLDe1DQBQN6BOTk2DXl5mcjCNRfq5l9PSIQRHTGbaib/ZBJF+33F1ybRs1zBpGyaEcZ2c3K9i2/MLsOmxl41qkrSCEuvGlKqfoZWWYO/5o80Ox3YyX3gVsSPPQe7dU1Hz42qzw7EV15kjkTnnVRxc8iVWX3Gv2eHYzqWFaxCdZr2VKUnbGVvfYUC0RTP0SBaTFajGyAmJgEQlu1CTkwIlXCWNPvuhpqSlQZJluDpbsyoWyZgkwZmcaHYYxCCGPjmYotBFaYL6ZIDJMuQkytJDTUlNh9A0yGmdzA7FduTUdAjO4e6SaXYotuNMT6HxAhHE2GSAMSQN6Wdkk6QVEgf1aVgFzNmzt8nR2AtzuaCkpQOM0bk3gbNXHwBATHY6lFhrDiKMVImD+pgdAjGQ4WldTEYanNSHFFLJwwZAcA6h63D2G2B2OLbi7NMfTJLAZBnRA08xOxzbiR54SuD8SxK9iIRY8rAB4Jp24m8kYSEoNZ7kYQOD0SxpRuqZQyA5AhNDnP0pGQil6H4DGla/c2RmQ4q15qjvSCTFxcORkQUgsPIp3XdCK3n4QMsu9kTazvBkgGsaUobTRRkqsisGcb26AQiMGYgZONjkiOzF2X9Ao1UHnX1PNjEae3H27d/wbyFE4OFEQib1zCGQLLjQFmkf4ysDjCFt1HDDmyVNSz1jcKNBPEp6J8ipNKo9VGJOHQ5Wt/qd0HXEDB5qckT2EXPK0IaqjKQo6DTmdJMjso+YrHS4smnAbCQxPBmQZBmdxp4Oxe068TeTDsu+cCy4emTBGME53CPHmBeQjUT16AVH+lGzZxiDe/Q48wKyGfc54xuVqV2dM5Bwci8TI7KP7AvGQnBrboxG2icoYwYkhwMZ554djKbJMbpMngTJcdSmJ0Ig9hx6IIWCe9TYRrvlMUlCdP8BkFNSTYzKHuTUNET3OzmwUU4drunIvog++6HQ+eIJMHC9OmIBQUkGuKqi80Xjg9E0OUrCyb3g7tp4fjWTZbhOOwssOsakqOwjduyE4xZ5ospMaLhHjjnuzZRJDF0uPdekiOxDcbvQafxZNF4gwgStMtD54vENfakkODpfPAFcO34fd+ZwwH3WSBMisg85NQ3R/Qcevy67EIgdO9GcoGwkdsyE47aLZpKE5GEDEGPR/VEiReakkZCjmt6CmYSvoC0fFZUYj84XTwhW87bHJAm9brmiyRXAhKYh/uLLTYjKPhIumtyoi6Aek2W4zhgBpROtiBcsSkYmXGeMaHrLaCHQ48bJoQ/KRnrdeiWtLxCBgpYMcE1H37uuDVbztpc5aSTcXbOa3DGMKQrcZ54NR3YXEyKzAVlGwmVXNf0wAgAhkEDJWNAkXHz5cVWBBpKEPndc0/zfhnRIbM+uyJx4NiSq+kacoCUDkiIjffRpiO/fM1iHsLXed17bYnYudA0Jl04JYUT24R45BkoLgwSZLCNh8hWAQqVUwykOJFx6RbMPe8YYYjLTkH3BmNDGZRO9qSoQsYK6ywRXNfS+7apgHsKW3N07I+u8US1m50xWEH/x5WBOZwgjs4fEKdc02UVwNDkhMTDAkBgqdtzEwO6cLeCahj53XReagGxEjolGz5unUFUgQgU1GZAcCnpNvaJhVz1ijAEzbmnVHF/J5UbC5CtDEJF9RA8aAtfwM05Yhha6jpSbbqctpY0kSUi56bYTJmKSoiBj/FlIPXNIaOKyid63Xw1HHG0GFamCfqdisoSBf7kz2Iexjfi+PdDzxstal50zhuSbboPkjg1+YDaRetd0iFaUSZksI+qkHoibdEEIorKHuPMuRFT3Hq0aD8A1DUNmPRCCqOzBkRCHgY/eTnsRRLCgJwOSoqDXTZchrs9JwT6ULQx+dlrDdsUnwhiDFONC0nU3Bjkqe3CNGIWYwUNbPWVWcI7U2+8Fc9DYgY5iUVFIvf2eVq96JykK0kcOQ+Z5o4McmT2c/MAf4Yh1NTlgmUSGkNQwBRcY/Mx9oThUREs5bRC6XDKxYYfC1mCyjMRr/kCr4nWUJAWqAicoUR+NSRLktHTqqjFAwqVXQk5Ja7Ti4IlwTcfQ2Q+06WfI8aIz0tBv2g00QyPCheQqkRwKuk6ehMxJo0JxuIjEFAWn//1pcLXtI3mZLCPtTw8HISr7SJxyDZw9erXrhphyy91Q0mlTl/ZS0jOQcstdbS5RS4qMxAG90edOmuLcEcPnPQqmUCIQ6UKWMnNdx5lvPQtHPPVft8eAB6cicWCfNlUF6jFZQdz4SYgdR0u1toejS1ek3NG+yhZjDCwqCukznjI4KvtIf+QpsKiodpeohzw/vWGbb9I2XS8/H10nT6IZBDYQsmRAkmU405Jx6ov0htpWiYP6YuBjd3So3Ck4R/pDj0NOSjYwMhuQJHT6y3NgUvvfjOoXgYq/8BIDA7OH+AsvgfuMER1a2pzJMs785/M0+K2NnGnJOG3+E7Q7oU2EtDNNUmT0vHEyss6nQT2tJTkcOOudmR1uh0kSJLcbaX9+zICo7CNxyrWIGTS4w/tsCCGQNu1hWqa4DZROmUib9nCHd8eTHArSRgxF33uuNygyezh9/hNwxLtpzIVNhPyvLHQdI/41B7E9aKnc1hj+6l/a3T1wLCYriBs7EYlX/d6AyCJf9JBhSL17uiFt1XcXZM6eSwtBtQJzRgfOVQe6B441dNafkTZquCFtRbp+025Al0vPpe4BGwl5MsBkGYorBmM+WwCFFrBoUZ87rkGvP17e5GZEHZF693S4zqRdDVuiZGYha9ZcQ9tkigJnzz7o9MjThrYbiTo9+jScPfsYu/MpA0Z/9CpcXbOMazMCZZ43GkNpjQbbMaX+IzkUxPbsirMXvUD9eM3oNO5MDHt5RtDaz3x2Dhxduwet/XDGYlzImvMaJJfb8OlUTJYRd+5vkHT9Hw1tN5Ik/f6PiJt4vuHnXpJlOOLcGPPZG1DcLkPbjhTxfXtg5AcvAx3rmSFhyLTOIEmRkfXbMTh19p/NCsGyEgb0xqgP5wXtemSSBBblRPZLr0NOTgnSUcKUrCDz6VmI6naSsW+lx0i5/R6a3dGE2PGTkHLbPUFrX3IoiO/XA2cvnhPUv284iu6UijH/WwA5OsrwaiSxPlP/4owx9Jt2A0556l4zw7CUuN7dMX7FO1DcMZCCuMgHUxQonTLQ+dW3IZ1g4xfbkGVkPDkTrhGjg7/AigAynp4N96ixwT1OGHGPHouMp2YF/a1UkmVk/eYcjHh3Ni2kU8eZkoTxK96Bq0sGjROwKUukfwMfuY0SAgDx/Xpg4neLEJUQF5ILkikKHF26ovP8f9KUQ1lBxpMzETtuYkhGTzNJAhhD5nMvwT2aEgL36HHIfPYlgLGQnf+ul03CiIWzbV8hcKYlY8LKhYjr1ZUSARtjoqPzdgy0Y85b+Hn684B1QgqZpCH9MW7Z23DEx4b8ghSaBjXvEHLvuAla4eGQHtsKmNMZeEsfOSbk06gE54AQKHj8IVR9+WlIj20Vcef+Fp0efzZkicDRBOc4tPQbfH/VNOheX0iPbQWuzhkYt+xtxJ7UxZAZSyR8WSoZEEIg79MVWH31n6BVecwOJ2S6XHYeRvzfTDCHbFpmLjQNvLoKedPvhHfzBlNiMIOS3gmZL/wtMHLdpJKx4BxMklDy5nyUvjHPPskwY0iZeheSb7yl4RyYQeg6yjb+im8vuhW1uQWmxGCG1LOGYvTS1wKVSEoEbM9SyQAQ2FykevcBrPjtVFTvPmB2OMHFGAY9fhcGPXaHqTfDekLXAcFR+NwTqPzkP6bGEgrRAwcj64W/QYqNs0SpWAgBz6oVOPyXByBqaswOJ6iYy4WMJ2bCPWqMJXbC46oGf3klvr3wVpT8uNHscIKuxw2TcfrrTwKMQaJ9BwgsmAwAgQtTq6nF91f/CXmffWt2OEERlZyIM998BtkXjbPEzbCeEAKMMZS/txDFf5sD4YvM0mn8JZcjffoMgEmWGkQmdB3qwf3I+/M9UPftMTucoHB074Gs51+Go0s3S517rgWS4Z/ueBK7F7xvdjhBIUc7MWTm/eh713UN1zohgEWTASBwU2SyjD1vLcH6+56FWlFldkiGyb5oPM74x18RlRiagYLtITiHmnsQBY8/CO+WTWaHYxglPQPpjzwF9xkjLHszFJoGCIGS+a+gbNHbQKSsDS/LSLr6Dw07EFqhGnOs+s9E/pff4YcbH46oboOUMwZjxMJZiD2pC00dJMexbDJQj2s6fMWl+OGGh5H/+Uqzw+mQqKQEDJ/7KLpfcyGEzi1/QQpdBxhD2cK3ULpgHoTfb3ZIHRJ/4aVIm/ZQYIlbCz6IjiWEgG/HVhx+/KGwrxI4uvdAxuPPwdnvZEsmYMfimgbd68f6u5/GnreWmB1Oh0jOKJzy5D3oP/1GCC6oW4A0yfLJABDY/liSZRz88EtseGgOqnL2mh1Sm0gOB3pNnYJBT95tymyBjhKcQyvIR/G8Oahe9kXYDXCLHngKUu++HzGDT7VsNaA5QtMACJS/txClby8Ar6wwO6Q2keITkPyHm5F4xbUArFkNaE79Z6Vw1Tr8cv/M8BtLwBi6Xn4ehjx/P9xdMi3/8kHMFRbJQD2uamASw+43l2Dz43NRm1dodkgtYwzdr7oAg5+dBlfnTIAhrB5ER6sf4OjbuQPFc19AzY/fmx3SCUWd1BMpt9+L2NHjIDQtrB5ExxK6DuHzofTtN1D+3kIIb63ZIbWIRccg8crrkPz7m8GcTkuNDWgrrmmQFAWHPl6GDQ/ORuUO61dpMiaejaGzHkDS4H5hUYUk5gurZKAe1zQInWP3gveR8+oiVG7fbXZIjcgx0eh21QXo/6cbkHByL0vMFDBK/ViO2g3rUfav/4Nn1XJA180Oq5HoQUOQOOUaxE44D+A8rJOAYwnOoVeUo3zxO6hcugR6aYnZITUiJ6ci/qJLkXjldZATEiPmcw/UvYzIEva/9xly5i5E8ZpfzA6pESbLyL5oHPpNuwHpI4eBazp1CZBWC8tkoB5XNUgOBYUrf8Kvcxfi0Edf15VVzRHXuzt633YVet50WWBHRs7D+o2oJfVJgVZSjIoli1Hx0QfQS4pNi4fFuBA36bdInHINnD17h30loCVCiMCgQiFQvfwrlP97EbwbfjY1pughpyLxsqsRO3ZiYPMxSQrbKtiJ1N93yrfk4NdX3sH+Rf+F5jFvKmhMZjp6/vFy9LnjakR3SqUkgLRLWCcD9eo//P7yShz6+BvkLl2G/C9XQ6sO/sJFiYP7ofNF49H5kglIHnpyw43CTkRdZaB20y/wrFgGz6rlUHMPBv24cmISXCNGI3b0OLjOGgnmdAJCRNTb6InUJz3q4TxUL/8anlXLUbvhZ0APclIsK4gZMgzuUWMQO3YCHBlZEZ2ANUVwDoBB9/mQ/79VOPTx18j77Fv4isuCfuzYnl2RfeFYdLlkItLOPhVCgBIA0iERkQwcjasqJIcDXFVRsHwtilatQ+n6LShdvxXewo6VVCWHAwmD+iB52ACkDB+I7AvGIiYrHVzTAjsB2ugh1BRRNwWOSRL8B/bBs2YVfNu3wbdjK/z793Z4ipySkQlnvwGI7j8AMcPOQPSAQYG3UF231UOoOfUPY+7xwLNmFbxbNsG7fQt8Ods7vIiR5HbD2ad/4PwPPAXuEaMgudy2SwCawzUtUAUUAiU/bsLhb9agdP1WlK7fipoDeR1qm0kS4vv1QPKwAUgeNhCZ549GfJ/uEHrd9UbjAYgBIi4ZOBrXdUCIhtH7tQXFKPtlO2pzC1CbX4TavELU5hdCrfJAaDoE55AUBZIzCtHpyYjJTENMZjpistIR16c7Ek7uBcmhQHAOoemQohwm/4bWJlQVzBE4R9zng39XDtTcg9CKi6AVF0IvLoJeXg6hqYFuB0kCUxRIsXGQU9OgpKZDSU0LJAF9+kGOiw+0q6mAJNs++WqJ0LTAXH5ZDswGycuFb89OaEWF0EuKoRUXQS8uAvd5j4z5kGVIzui6c58GOSUVSlo6nD16Q8nKBpOkulUqBSUALRCcQ+g6pLrPvr+8EmW/bIfnQN5R950iqOWV4KoWGFMky5CjHHCmJiE6Mw2urHREZ6YhrmdXJA7qCznGCQDgfpXuOyQoIjoZaIoQom5RF4ApLT9QuKpBCAFJlin7NojQ9UCFQGp55T/BeeAhZdHFacLRkXMKQFaa7dMXQgS6GQQAmZIuo7T2fsLrXkyYJFHpn4SM7ZIBQgghhDRGKT8hhBBic5QMEEIIITZHyQAhhBBic5QMEEIIITZHyQAhhBBic5QMEEIIITZHyQAhhBBic5QMEEIIITZHyQAhhBBic5QMEEIIITZHyQAhhBBic5QMEEIIITZHyQAhhBBic5QMEEIIITZHyQAhhBBic5QMEEIIITZHyQAhhBBic5QMEEIIITb3/5XjSsk5s0kJAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize_1D(A_2D.max(axis = 1), '沿axis = 1，最大值', 0, 9)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 160,
   "id": "2e88142c-9a19-4943-8d82-598a153fa0a4",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "7.9"
      ]
     },
     "execution_count": 160,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "iris_data_array.max()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 161,
   "id": "2770afe1-1459-42fa-9e64-9e3ebe7cbde3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([7.9, 4.4, 6.9, 2.5])"
      ]
     },
     "execution_count": 161,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "iris_data_array.max(axis = 0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 182,
   "id": "4c42bc9a-0272-494b-a4d6-84d9e4a2290e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAgMAAACGCAYAAABAOYkVAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAp6klEQVR4nO3dd5xcdb3/8df3nDN9W7Zkkw0J6QlJaCFSpBcrKCooP8WrcK+itKtyLyJdMYpcBC9SRHIFFI2CBbBSVKRKiRBSID0hZbMl2b477Zzz/f0xu5tdsrvZMuXszOf5eOTxIMPMmc9OZs95n29VWmuNEEIIIQqWkesChBBCCJFbEgaEEEKIAidhQAghhChwEgaEEEKIAidhQAghhChwEgaEEEKIAidhQAghhChwEgaEEEKIAidhQAghhChwEgaEEEKIAidhQAghhChwEgaEEEKIAidhQAghhChwEgaEEEKIAidhQAghhChwEgaEEEKIAidhQAghhChwEgaEEEKIAmfluoBscZM2yjRQxr78Y3dFiTfsJdnWgbZttNYYpokRDBCoLMc/oRRlGn2OkURZFkqpXPwI45fWgAbVJ3tqF3QcdAJwU39HpZ6j/KACoMz+z4f+xxDDou0kmP2/t25nB05LEzoWBcdJPWiaqGAIs6wcI1K07/Vag2OjLF+2Sx/3XK1R0O+zd7QmYbskXI1GozUoBYZS+A0Dv6kw+v5bDXAMIdItb8OAm0xi+Hxo16V94zaaXllJ8xtraVu7kWhtPbHdjdgdnUMeQ5kmgYkVBCdVUTRzGhMWL2TCkkOZcNQifMVFaNftDRCij94LuwI3Ds5ecJrAaQa3C3Q0FQQOyAdGqPtPGZjlYFWAEdn3PhIO+tGuC1qjTBOdTJDcuon4utUkN75Ncuc2nKZGnKa9kEwMfSCfH7O8ArO8Ct9B0/HNXUBg3iJ8M2ajfH6044BS/cK1SF24ey7kXUmHpliS1oRNa9wmZrtEHRfb1Qc8jt9UBE2DsGVSGrAoC1hMCPoImAZaazT0CwxCjJXSWh/4mzkOaK3RrothmnRtr2Xno0+y+8//oOnVN3G6oml/v8isaUx63wnUfPQMqk46BsNn4SZtDF/e5quh9VyYtQ32bkjWgl2fuvCnnQ+sKvDVgDUFjGBBBwPtOGAolDJIbFpH9MW/EX3tRZJbNoLrpPfNTAvfjNmEjj6B0HtPwz97Plq74KYCSCHqCQBxx2V3Z5y6zgR7Y8lhXfRHKmgaVIV9TAoHqA77MQ3VL4AIMVrjPgz0XIC7dtSyZdnD7Hr8adrXbc5qDVZxhOozTmDa+WdTc+apaFdjWAVwYuz96riQ3J76Yzek/p5NZjn4DgLfTDACBRMMtG2jLIv4+jV0Pvk40ZefxW3ak9UajPJKQseeTOQDZxOYt6i3pnzXcwFOOC7vtMWo7YzTErezWoOhoDLoY0pRkCnFgd4BYNKdIEZj3IYB17ZRhkHdE8+y6Ue/oP7pF/pcnHIndNAkZvz7p5h10acJVJWjXTf/mlJ7LrZOByQ2QnJbd99/rhmpUOCfA1Zl3oYC7bpgJ+n865/o+NOvSW5en+uSAPDNmkfRWZ8kcvqZYPny73vPvhDQFEuypTXK7o54tqPvgHyGYmpxkJmlISI+U1oLxIiNuzDgJm2Uodj64G9Zd8u9dL2zK9clDUj5fEz95IdZdNNXCU2Z3N2FPs5/OXtGOjktEFuV6g7wKqMMgovANyVvQoF2HHQiTtvDD9Dxh4fRnR25LmlAKlJE0UfOo+S8C1H+QF50H/RcXHd3xFnX3ElbIs3dL2k0MexnQXmE0oCF1nr8n3dEVoybMNDTHbDz0SdZc8MP6NiwNdclDYvy+Zj5xfNYeP3l+EpL+s1OGDd6viJuJ8RXQXJHbusZCbMCgoenxhiM01CgHRtcTfvjv6T94Qdw21tzXdKwGMWlFJ93IcVnfzo1psEcf90HPSFgbzTJ2r0dNGe5K2AsphQFWFAeIWSlvvMSCsRQxkUY0K5L65oN/Ovi62hesTrX5YyKVRRh3pVfZP6VF6VmIIyXflXtAm6qJSCxCfD812Vg1mQILQEVHDeBoKeLqev5v9Jy3+04jXW5LmlUzKpJlH3pvwifcPq46jbTWhNzXFY2dtDQ5YVusJFTwPSSIAsqijCUzEAQg/N0GHBtGzS8tfQu1n9/GdoeP6l8MGVHLODoB2+leN5Mb58Ue7oE7AboegV0V64rSgMr1UoQmO35VgLt2LhdnTTfsZToC3/LdTlpETrxDMr/8zpUOOzpVoKe1oCtrVHe2tuJ7d1T5LCFLIPFE4upDPml60AMyLNhQDsurWs38NqFX6d1jTcGSKWL8vk45OqLOeQbX07NF/Zan2pva8BKSGR3ZkZWmBMhfIwnWwl6TtRdz/+V5ru+i9vakuuS0sooLWPCZdcQPvGMXJcyIFdr4o7L6w3t7Ikmc11O2k0vCbJQWgnEADwbBrb85BHe+MpN6GT+/UL2qDxhCe/9zT1YRRHvrE+g3dTCQF3Pgdue62oyyAfh94JVnWoB8QDdvRJg8z230Pmn3+S4msyKnHkuEy65CsAzAwy11jRGk7xW35aRNQK8oshncuzkUkKWIYFA9PJUGOg5Ga68Yimb712e42qyI3zwFI5/7McUz52Z+7UJtE4tFNT1EpC/IWwfBcHDIDB/X7dIjmjbRsei7LnpCuKr/pWzOrIpcNgSKm+4DRUM5XRtgp7WmI0tXby1d+hVSfOFz1AsqS6hKuSTLgMBeCgMuLaN0xnlpU9dRuM/Xs51OVllRsIc/eCt1Jx1OsrI4S9mfD3E3mTcDhIcLd90CL2H3iWUs0w7Dvau7TRefzlOfW3W3z+XzOoaqr59J9aUaTlpIehZ2ndlQzs7OoazRHb+UMCCigizy8K5LkV4gCfCgGvbJJvbePZ9/0bb25tyXU5uKMXiu29i5n98KjfvH10JifwamzEiZjVETqR3s6Qs0Y5DYtPbNF5ziWfXDcg0FSmi6rv34J99SFYDgatTmwS9UtdKYx6ODxiu2WUhFlYUHfiJIq/lPAy4tk2iqZV/nPYZOjZuy2UpnnDE/97ArC9/JrtNd9HXUysJFjqzCiInk61AoB2HxPo1NF57KTqaD7M1Rk+FwlR952788xZlJRBorXE1/HN3K3tjhRsEeswsDXFopQSCQpbTodSubZNsbefZMz4rQaDbyq99m60P/BqdrQFM0ZUSBHo4jdD5XOq/M5yRteOQ2LyOxusuK/ggAKCjXTRedxnJLet7xw5l7L26uwZerpMg0GNLa5S1ewuzZUqk5KxlQLsubiLJMyedR8ubb+eiBO9SiuMeuYvJHz41c4MKtYb4utSKgqI/awpETsjY4bVt4zTWUXf5+eiOfJ6xMXJGUQnVd/4cs2pSxgYVaq15ta6NunG6kFAmLSiPMLssJIMKC1DOWgaUYfDq5/9bgsBAtObVC66kY+NW3GQGFlrSbmpfgfj4XM0x4+xdqRUXM0C7LjoZp/H6yyUIDMDtaKPx+v9EJxOpDZky4O2mLgkCg3irqZOGrgRu7oeSiSzLSRjQWvPW0rvY9dhTuXj7ccHp7OKFsy/C7ujETWezqXZTewx0/ZOCmzUwEvG3IbE9I90Fe79zFfbOd9J+3Hxh79zG3u98PTXcPY201uxqj7GxRbplhrKivp2upCOBoMBkPQy4tk3tH//OW0vvyvZbjztd7+zipU9emr5zotaAk1pQiPG/tHPGRV8Ft7V7Rcb0aP3JHcRWvJS24+Wr2IqXaP3JD9N2PFdr2hIObzRKa8yB2Frz8u5WHK3xwGQzkSVZDQPacUk2t7Hii1dnfIBWvtjz/Gusu+XH6WkyVQqi/wJXBgoNj9O9ANPYadsm9uZrtP/2obQcrxC0//YhYm+uSNueJCvq23DktDMsnbbLqsYOGTtQQLIaBpRpsOLL15JsHh9bsHrFW9+9h/b1W1IbN42WdiG5C5LSPD0ibjvEVo8pvGqt0bZN0+3fTF9dhUBrmm6/MbU64xg//7ebOulIZnaWQr7Z2RGnrjMu3QUFImthwLVt3ln+e3b/8e/Zesu8oZNJXr3gytGn9J7ugeiKtNZVMBLrwWkedXeBUoqW+27Dqd+d5sLyn1O/m5b7bhv1d9/Vmpa4zaaWaJorKwwrGzuku6BAZCUMaK1Jtnaw8oql2Xi7vNSy8i3W3Xof2hnFBUmp1MJCOpb+wgqChujolsjWtk1s9et0/vm3aa6pcHT+5XfEVr8+6u6C1xtknMBoxR2X1dJdUBCy0zKg4a2b7pDugTFaf+sykq1tI0vp2k3d1Sa3ZayuguC2p7ZzHmHrgLIsWu69NUNFFQitafnx90e87oCrNdvaYtI9MEY7OuK0xm3pLshzGQ8D2nXp2rmbLT/5dabfKu/ZHZ2s/fadI5sRqIzuzYfEmMXXAsMPA9q26Xz2SZKbC3jPhzRJblpH17NPjah1QGvY0FwYuxBm2tq9HbLdcZ7LeBhQhsGa625DJ2XZz3TY+n8PE62tG97sAu2C3ZDalliMnY6ndnYc7h2SUrQ9eE9mayogrT+9e9i7Smqt2djSRVymD6RFYzTJnqgsRpTPMhoGtOPQ9vYmdjzyp0y+TUFxE0nW3PADlDGMfzppFUi/+DrgwMFWOzadTzyKvXtH5msqEHbtDjqffAztHLh1wHY1m2XQYFq9tbdTWgfyWGZbBgyDDT+4X9YUSLMdj/yZ+J7moZ+kXbD3gNOUnaIKhj2ssQPKtGh/dHmWaioc7Y8uR5lDjx3oGStgy3knrZrjNk2xpLQO5KmMhgG7o1NaBTJAJ5Nsue+XuPYQA6OUIbsRZkpiM0Otlasdm9iqFdg7t2WtpEJh79hKbNW/htzZUAHb2qRVIBO2tkaldSBPZSwMuLbN1vt/jROV6WyZsOUnD6OMIX4p3Tgkd2avoELidoJdN2jrgDItOh7/VZaLKhwdv/8Vyhx4N09XaxqiCbrszGxyVOhqO+IkRjO9WXhexsKAYVlsWSYnxEyJ7qyj9k/PDLyroXa7717llzZjEhtTrS8DcJr3En35uSwXVDii/3wWp2Xg7i9DKba2yg1IprjAtraYdBXkoYyEAe26NL+xlo6N2zJxeNFt+/LfY/gG6D9VBiS3Z7+gQmLXgd5/IKG2bbqeeQKGMchNjJKT+owHmmaYdF0aZHvijNrZEZOugjyUoTCg2fXY05k4tOij/unnB24ZcLtSu+2JDNKQrN2vq0BZFtGXn81RTYUj+vKz+y1C5GpNXWdCNubOsPaEQ3So8UpiXMpIGDAsU/YgyAK7vZPG517F7TuYSrsyViBb7F37dRW4XZ3E167MTT0FJL7mDdxoV7/HDKWo64znqKLCUtshGxjlm4yEgWhtPa1rZNW1bKj9w1/7rxuujNTuhCLzkv0HEWrbJvrq89JFkA2OTfSV5/t1Fbha09Ali5tlQ31XQroK8kzaw4CbSLL7L/9I92HFIOqeer7/AkTaAWdP7goqKElw9vauo6Esi9iKl3JcU+GIrXixt6tAa01zzJa1BbJkTzSJI591Xkl7GFA+i+YVq9N9WDGIzs3bSbZ37HvAaUVmEWSR00TfzSISG9bmrpYCk9j4Vu9/a6A5Lq0C2aKBtri0gOWT9IcBpWh+XU6I2dT8+trUTobaTd2piuxxmnrHDbjxGPbOd3JcUOGwd2xDJ1JjBAylaJGLU1a1yE6GeSX93QTJJK1rZeW7bGpesRqdtAGV2q5YZE/35621JrllAwxnAymRHq5LYsuG3i29JQxkV0vcHmIdTjHepD0MtL29SXYozLLm19dg+H2pHd1kL4LscttB2+DYJNavyXU1BSexfg24Lrar6UzKdLdsaokn+w9eFuNaWsOAdhzaN2xL5yHFMHRu6bMzniv7t2ed2wWGib1bpnRmm127Ewwl895zoCsprWD5ZOjtv0ZIOy6x3Q3pPGRaXJLYQiP7NyF+wCjlC1b1gK95wmnhCaeFBpJUYnGOWcHJZkmmSx2VaF33Z65tGODn9JKbb3+Ma276FV/58of43+99/oDPf/Hl9Zx85rdYdMhUVr5wSxYqHAU3ivKV4DR5cxZHXSzBzRtqeWZPGzHHZWYkyP8snMZhpeFBX/PT7Y38dHsjO6IJpgT9XDazmnOnVGSx6uFJfebKk3sR/OZHd/DyU39i55aNBAIh5i1ewue/fgNTZs4e9DWrX36R6z/78f0ev+vJFzlo1pxMljtittY4rsYcao8UMW6kNQxgKGK7G9N6yHS42Tet3/j6HTrOt+1dHGcUD/j8J50Wljt7+JJZzWwjwCY3xr1OPRFlsMQoyk7RIxCv34vWGqW9vSb7a69v5r4H/8ZhC6cN6/mtrV187st3c/rJi6hv8PCKit3LEjt7vffdb0nafOKVjRxXXsTPFs+iImDxTleCEt/AG/0APLS9kVs21PK9hdM4vDTMm61dXLV2O6U+i/dNLM1i9QfmNDWigZgHWwbWvvoSH/rsvzPn0CNwHJtf3H4z37zgU9z5xPMEw5EhX3v30/8kXLTvXFNSXpnpckcl5rhEjMG/S2L8SGsYMCxr312qh5Sq/j/mY04T1fhYoEIDPv85t40zjFKON1Nhodr0s0HHeMxp8mQY0I6Dm0himt7dtrWjI8b5X7yTZT+8iKW3/m5Yr/nS15bxmXOPxzQNHvvTigxXOBapC5EXWwZ+tLWeyUEftx16cO9jU0OBIV/zu93NnD+1ko9OngDAweEAr7d08qOt9R4MA6nPPO7BnfRufODhfn+//Ht38PljFrB5zSoWHn3ckK8traikqMRbn/VAYrZLZIhgKcaPtA8gjDd6ewBbUmued9s4zSwZdPBLEo3/XeNk/Sg26ZhnFzXRtg2ud8PApf99P2e+/0jOOOXQYT3/gZ//g81b67nxG+dmuLJ0SH0n3EF20sulpxvaOKw0zJdXbuXIZ1bzoZfWsXzH0KEl7roE3tX0GzQN3mztIul66/vvtjShgLjjrboG0tXeBkBRWdkBn3vFR0/nwuMWcf2/ncPqf76Q4cpGL+a4vbM5xPiW/qmFcW/vGPaa20EnLqcYg6fuI1SEv7mtbHZjaK3Z7MZ4xm3DAdrxXnMk0L0KnvfujgB+9duXeH3VVm6+8dPDev7Gzbv5xrd+yS+WXYZljYe7jtTJ0IuzaHZE4/x8xx5mhAM8dNQszp9ayY3rdvKbXYOvR3FyRQm/3LmXVa1daK15s7WLR3btJak1TQNtjJVDOpk633h9vrvWmvu/eyOHLDmGg+ceMujzyidWc8nS27jqrvu56u4HmDJjFjd87hzWvvrPLFY7fK7WsjFUnkjvmAFSTdZe9ne3lSNVhHI1+I9+jllOCzbX2tvRQCkmpxglPO42Z2Yzh7TQ4MFfyx079/CVb/yUp353DcGg/4DPdxyXz3zhTr519bnMnV2ThQrToOdjd7333Xc1HFYa5qq5qc9yUUmYDR0xfr5jz6ADAr8yaxKNiSQfe2U9Gqj0+zi3ppx7tzXguWjmuiil8HgW4L5vfoNt69/i5l/9YcjnTZk5u98Aw/mL38Oe3bU89n/3HLBrIRe8/rmL4Ut7GMDD804bdZJVuosrraEvMgFlcIk1iYt0Na3YlGHxV7eVEAbF3jsddvPm5/6vlVtpaGzlqFOu7n3McVyee2kddy17knjDzzHNfRGrvT3Kije28MaqbVx25QMAuK5Ga41V8Rme+t01nHbyoqz/HEPq+eiV8tzZcWLAYk4k2O+xOZEAf6lvGfQ1QdPg+4sO5uYF09iTSDIx4GP5jj0UmQbl/vSfMsZGeb6Z+r5vXc2rf3uS7/7ycSonjzzgzjvyKJ59/DcZqGzsPHy6FyOU9t9sw8PNus84rZRislgNPZK3h6UUFfgAeNFtZ7ER8fhOXd5rtzj95EWsfunWfo9deOmPmD+nhqu+ena/IABQUhLa7/n3/OQp/v7cWn7z068x4+CqjNc8aqbpuRUIl5QVsbmz/yyTLV1xDgoduJXGZygmd7fm/L6uhdOrSr33/TdT5xuvlQWproFl37qal5/+M0t/8RjVUw8+8IsGsGXtaiZUDTwFOtc8+LGLUUp7GLCKh3ehzTZXa55x2zjZKMF815njF3YjTdhcbk0GoFYn2OTGmGME6dAOf3Rb2KHjXGZNykXpw2MYMETXR64UF4dYtGBqv8ci4QAV5cW9j1/9rV+yq7aJn/34UgzD2O/5EytLCAZ8+z3uNUY4gtvakusy+vnC9Co+/soG7tpSx1nVE1jZ2snynXv5Xp/P8nsbaqmLJ/jfQ6cDsKUzxsrWLo4sDdOadFj2TgPrO6LcfujwpoRmkxEOowHLg3Pdf3zjVTz3h99xzb0/IxSJ0NxYD0C4uIRAMDWT6aFbl7K3fjdf/f7dAPz+gR8z8aCpTJszHzuR4NnHf8M/n/wjV919f85+jqFYhpJAkCfSu+iQ6xKcNDGdh0yb1bqLPdicZu4/cLAZhz26z77oaP7gNlPrJDBRLFIhlvqmMVH5slnyiKSWIx58ERkv213XzPad3puWN3ypu1OzvMpzYeDw0gj3HTGTWzbWcsfmOqaG/Nw4bwofrynvfU5DPEltdN/gR0fDsm0NbO6M4TMUx5UX8+gxcw84JTEXzPJUS1HQ9F6r2BPLHwTguvM/1u/xy2/5Iaef8/8AaGqsp7F2V+//s5MJHrz5mzTV1+EPBpk6Zx7X/d9ylpxyRrbKHpGQZcqSxHlC6TR2uLmJJOu/v4y137ojXYcUw2AVRfjY3tfBjUH747kup/CETwRfDY3XXkrsX94c9Z2vgke9l8qld1LbGWdFfXuuyyk4H5xeQcCDQUyMXHr/FRUEJ3m4TzdPBWu6W2NUAOnFywGV6lfvuUsV2WNWVKGUIuThsUr5zO/B7hkxOmkNA8qyCB3k4X71PBWa3BMGVHcgEFllhNG2jVkpYSDbzIpKtOsSsuTuNNsCpiFdBHkkvWFAKcoOm5/OQ4phKF00F92zHOsAYyJEJlmgQqAUvumDb0AjMsM3PbV5T9A0sOTClFUlfmmNySdpj9PBSVUEqsoP/ESRNmVHLkS7LmgXzAm5LqewmBNAKZRp4p8/vKWWRfr45x+KMlJ3qCUB782myWdlAcvzKz+K4ctI29qExR5bFCbPVRxzBIav+0RoShDLKnNC70JDVnUNKuK9jazylSoqxqpOTQfWWlMmYSCrygLenV0lRi79exPYtoSBLDLDIYpmdy9mogwwvbfnfF4zy+m7DLR/9uDrzov06vtZa5AwkGUTgpb3FqESo5b2MKCUovKEJek+rBhE+dGHo4w+/4xGGFRw8BeI9LKqUiGM1L4cgYWH57igwhFYcFjvXiiGUlSG5E41W4KmITM48kz6w4BpUnXy0ZiR8bkAznhTc+apuH13y9MaDrD3gkgTozQVvnooRei4U3NXT4EJvfe0fusQhyyTYp9coLKhOuL3/J4QYmQyMmbA8PmoPuP4TBxavMuUj38Aw9f3jkiDb0rO6ikovprUoM1uyjDwzzkEo7wyh0UVBqO8Ev/s+f1axVytmRQ58J4LYuwmR/we3CNVjEVGwoCbTFLzkdMzcWjRR8khswlPndz/QWWANQk8u7tiHrEO4t2LPGntEjr6xNzUU0BCx5yE1v03hVLA5Iiss5FppoKqkF/GC+SZjLUM1HzkdJQlA3oyqeajZ+Dazv7/QxlgTd7/cZE+KghW+f7b5bma0AkShDMtdPxp4Pa/N1VKURawPLlPQT6ZGJYgkI8y9lvjLyuh5qPe3FwjLxgGM794HmqgE592wT8r+zUVEv/M3imFfSnTJLj4WMwqWYkzU8yJkwkuPhZlDtz6Na1YBtBm0vSSkKwvkIcyFgZc22H2JZ/N1OEL3qT3n0B4as3Ay4EqA3yTwPDmdtLjnwL/7P1bBXpoTeTDn8huSQWk6EOfGDCI9ZhRGpQdOjIkYhnSMpCnMhYGDMuk6sT3UDxf7lAzYdbFn8W17cGfoN3UBUukn1UDRmjQ/61Mk6IzzwXpJks/yyJy5jmDtgoopQhaJtVhGUiYCdNLpVUgX2W0c81N2sz60qcz+RYFKTz9ICa9/0SMoS42ykg1ZctAwvTzz+k3i2AgZklZql9bpFX4hNMxS8qGfI6rNTNLBw9rYnRMBQeXBKVVIE9lNAwYPosZ/3Hevi12RVrMv+pLqb0IDsgnrQPpZlaAr7p3oaHBaMeh9PwvgSGD2dLGMCg5/6LehYYGfZpSVIX9TJAVCdNqeklINoPKYxk/UynTYMG1l2X6bQpG8byZzLjg3KFbBfoKLgBkZba0CR5+wFYBSHUV+KbNIHzqh7JQVGEIn/ZhfFNnDNpF0JerNQsrZJ+IdLEMxbxyWUgun2U8DBiWxYwLz6Vo7oxMv1VBWPTtK/ZtV3wgSgE+CMi20mlhTe63/PCBaNel9MLLwCdhbMx8fkovuGyYLWKp1oGKkI+JMnYgLeaUhbGUGnjAssgLWWnD1K5m0U1fy8Zb5bUJSw5lytnv27dD4XAoBYF5sl/BmKlhtwr0vsIwMCsmUnTmJzNYV2EoOuuTmOWV/ffhOABXaxaWy4yasQqYBrNKQxIE8lxWwoDhszjo4x+g+v2yMttoKcviqHuX4iaHmEEw+KshuDjtNRUU/xwwS4fdKtBX6ecvwayUcTOjZVZWU/q5iwefyjkIQylKApYMJhyjwyqLRvrRi3Eoa6ObtOOwZNnNWCXSjzca86+8iNKFc0fWKtBDGeCf2r18rhgxowiCh43qpUoplM9P+dduTHNRhaP8ihtRPv+o70wXlEeIyAZGo1ITCVBTFJAZBAUga2FAmSaBynIOv/WabL1l3ihdNI9Drrt0RE2k+9EaQu8BJWu3j4yC0DG8ew+CER3BsggedRyR95+dvrIKROT9Z6dWGxzDmg1KweKq4jRWVRj8puLwqiLZnbBAZHXek2GZzLjgHCZ98KRsvu24pnw+3vPA/zDmLcKUAmVB6Ki01FUw/HPAqhxV90BfWmvKLr5SlikeAbNqEmUXXznmi5GhFOUhn3QXjNDhlcVYhgwaLBRZnwStHYdjHrqdyMyp2X7rcenIH944+u6Bd1MG+KaCf+7Yj1UIzKrUoME06OkuqPzmD1B+aZ05EBUIpj6rMXQPvNvCiggVQZnZMRyzSkPSPVBgsh4GlGlihkKc8PgyrGIZ6TuUWRefz8x//+TAmxGNRfCI7m2OxaBUGMInpPeQloVvxmwmXPHNtB43H0244kZ802enfefToyeVELJkIaihTAz7WVgh5+ZCk5PfCsNnEZk5jWN+dtuIRwgXiomnHssRt12buTcIvxcM6UcdmAWRk1LdKmPsHng3ZZhETvkAxZ+6IK3HzSfF511I5OQPDGtxoZEwlMIyFMdOKsWU086Ainwm76kuyXUZIgdyFpENy2TSh07hsFuuylUJnlWyYA7HPXJX5t5AKcCE8EkyoHA/CsLHpYJSmoNAX6UXXk7oRNni+91CJ76P0gsyt2KpoRTFfpMl1SWys+G7BEzFsZNLMRQyTqAA5bS9TCnF3K9cyMJvfjWXZXhK0ZzpnPz0Q5jhUNrvjPpRBhhhiJwKSlZpS1EQOja10mAGgwAAWlPxjZsJHiuDaXsEjz2Zim98d8jtidNBKUV12M9R1cUSCLr5DcXxNWWELEPGCRQoT3SeHXL1xRIIgOL5Mznl78vxlRYPf++BsVBG6g44cpq0EPQEAd/UrHRdKcMApai8/vsEjz054+/ndaHjTqHy+ltBqbFNoR0mpRQ1kQCLJ0og8JuK46eUEfGZEgQKmNIemkS64Y4HWHXVLRm/M/CissMP4aQnHsQqKcpOEOhLu+B2QuczoKPZfW9PMFNdA1ZN1sewaNcFrWm69Xq6/vFEVt/bK8KnfJDyr38byE4Q6EtrTV1nghUNbbiFd9ohaBocX1NKWIJAwfNUGNBaU/eXf/DK5/4Lu70z1+VkzZRPfJCjH/gflGVmPwj00C7oJHQ9D87e3NSQCyoEkRPBKMvZYFbtuijDoHX5MtoeurdwwrBSlHzuYko//YXezyAXtNa0Jmxe2d1GbLibgOWBCQGLYyaX4jOUBAHhrTAA4NoOnVu288LHLqJz8/Zcl5NZSrHg+stZcO2lOT0Z9urZhCe6ApJbc1tLNpgVED4RlC/zYwSGQWtN9JXnaLrlWnS0K9flZJQKhSm/6juEjjnJE4PVXK1JuppXdrfSHB/N/h/jy7TiIIdXpZaGlyAgwINhAMBN2jjRKK987r+o+8uzuS4nI/zlZSy577tMPus0T5wMe2mdukOOb4DYKsDJdUWZ4Z+1b/MmDwSBHtpxsGu3s+em/8bekZ+BzJo6g8obvo9VMy2zg2RHyO0+Fa5q7OCd9liOq8kMQ8HCiiJmlobQWnvr3CNyypNhAFInRWWabP3pb1l15c0kW9tzXVLaTP7I6Sy59zv4yrI0UHA0tAa3A6Kv5Fe3gQpB6GjwTdoXfDxGOza4mtaf3kP77x4CN0+arg2T4nM+S+nnLgFDoUzvffd7LpANXQneaGjPq26DCQGLxdUlRCxDQoDYj2fDQA/XdkjsaWLFRddQ9+RzuS5nTHwTSjnyB9cz7dMfQTtu+lcWTDftAgoS6yC2BhjnJ0bfDAgtBgxPtQYMRmtNYuNbNN16w7hvJbCmzqDi69/GN/uQcXEhcrXG1bB6Twfbx3krgaFg/oQIs8tCaKRbQAzM82EA9rUS7HzsKdZcfzsdG8bXiVH5fMz8wqdYeMN/5ma2wFhpDboLYm9Cckeuqxk5syK1x4BV5dnWgMFoO9V/3f7YctoffgC3vTXHFY2MUVxK8XkXUvyxz4DCk60Bg+lpJdgbTbJ2b8e4HEtQEwmwsCJCSFoDxAGMizDQw03aKEOx9cHf8tbSO4nVNuS6pKEpxdTzzuLQpVcQmjI5dTIcr7+QPRdRpzkVCuz6XFd0YEYJBA8D35RUK8c4aA0YjHYcdCJO26/up+Ox5ei4t+9WVSBI0cfPp+S8C1H+gKfGBoyUqzWGUuzuiPNWUycdSe+Po6kK+VhYUURpwJKxAWJYxlUY6OHaNtpx2Xr/I2y+dznt6zbnuqR+zFCQqeedxdyvXkjJIbO9MVMgXXouqnYjxNeDXcvY91dOM7MitfWwbxqgx3UIeDfturjtrbQ/upzOJx7FbWnKdUn9GBMqiHzgYxR//DMYxaX5870nFQoUsKsjzpbWqOdaChQwKeJnVmmIipC/N8QIMRzjMgz0cG0bw7JofP41Nt3zc2p//9feZtVcKJoznVkXfZrpF56LVRQB1x3Xd0RD6gkFbhQSmyCxBXQu71at1MU/MBfM0nHfEjAUrXX3uhCaruf/RscfHiGx9o2c1uRfeCRFH/kU4RNPT7Ugqfxtlu65yLbFbba0RtnZEcPJ4Vk0aBpMKwkyoyRE0DIkBIhRGddhoIdrOxiWSaKljdo//p3df/gb9X99Ebsj8wsXlR42n5qzTqfm7DOYcMQC3KSN4Rs//aJp0fMVchohuQvsXakVDTNNBVL7CPimdG/J3B28CuhEqG0bZVnYDbuJvvB3oi8/S3ztSnAyHIpNi8CiIwkdcxKhE07Dmji5t5ZC0XPqdDXUdyWo64pT35kgkYWlDCOWQXUkwOSIn4qgDxjHXZDCE/IiDPTlJpMYPh9uMknjs6+y54UVNL+xhubX1xJvGNsUOeXzUbpoLhMWL2TCUYuY/OFTCU2eiGvbKMPIqybRUen5KikFTjvYu1NjDJwmcNsZc3eCCoM5AcxysCamugNSb5y3rQAj0XMxdrs6ia14kfi61SQ3vE1i87oxL2KkwhH8s+bhm3MIgfmHEnzP8RihSMEFgMH0dCEANMdt9kQTtMRtWuI2UXvss3CKfSZlAYvSgEV12E+R3+oNIxICRDrkXRjoSzsOWuve0fux+j20vPk20V31xOoaie5uILa7AbujE207qb59y8IM+AlUlROcVEVw8kRCkydSNHc6JfNnY/gstOuibQfD78vxT+hxfZvqtQNOS2rtAh1LdS/oGOh49xTGniBhAD4wQqk1AYwgGBEwy/btrtgz5VFOgoPSjt296Y+J1i52XS32tk04extxmvb0/tGJ+L5WBNNC+QOY5ZX7/lRUYU2fjTWpBqUMtOuA1uNqVkC2aa37TeFLOi6tCZsu2yVuu8Qcl5jtkHR1734IitTXOWAaBEyDoGUQNA0iPpMSv4VppI4lXQAiU/I6DAxEa50aV6BBWeaQd/Nu0u4+8ZneXxNgvNB97pKGupvXmv4BQYyV1i7YTurKY1qD3lFqrVMBQQOWiZLPPy16VjhMXfgHv6C7fU7JcuEX2VJwYUAIIYQQ/UnkF0IIIQqchAEhhBCiwEkYEEIIIQqchAEhhBCiwEkYEEIIIQqchAEhhBCiwEkYEEIIIQqchAEhhBCiwEkYEEIIIQqchAEhhBCiwEkYEEIIIQqchAEhhBCiwEkYEEIIIQqchAEhhBCiwEkYEEIIIQqchAEhhBCiwEkYEEIIIQqchAEhhBCiwP1/eh2CYF7BkwYAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize_1D(iris_data_array.max(axis = 0), '鸢尾花沿axis = 0，最大值', 0, 8)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 162,
   "id": "4f5167ee-6b33-4973-8a3e-e38d3a5d2542",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([131,  15, 118, 100], dtype=int64)"
      ]
     },
     "execution_count": 162,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.argmax(iris_data_array, axis=0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 163,
   "id": "b87c43ee-4cca-40b7-a0a8-f246fd8e883f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([5.1, 4.9, 4.7, 4.6, 5. , 5.4, 4.6, 5. , 4.4, 4.9, 5.4, 4.8, 4.8,\n",
       "       4.3, 5.8, 5.7, 5.4, 5.1, 5.7, 5.1, 5.4, 5.1, 4.6, 5.1, 4.8, 5. ,\n",
       "       5. , 5.2, 5.2, 4.7, 4.8, 5.4, 5.2, 5.5, 4.9, 5. , 5.5, 4.9, 4.4,\n",
       "       5.1, 5. , 4.5, 4.4, 5. , 5.1, 4.8, 5.1, 4.6, 5.3, 5. , 7. , 6.4,\n",
       "       6.9, 5.5, 6.5, 5.7, 6.3, 4.9, 6.6, 5.2, 5. , 5.9, 6. , 6.1, 5.6,\n",
       "       6.7, 5.6, 5.8, 6.2, 5.6, 5.9, 6.1, 6.3, 6.1, 6.4, 6.6, 6.8, 6.7,\n",
       "       6. , 5.7, 5.5, 5.5, 5.8, 6. , 5.4, 6. , 6.7, 6.3, 5.6, 5.5, 5.5,\n",
       "       6.1, 5.8, 5. , 5.6, 5.7, 5.7, 6.2, 5.1, 5.7, 6.3, 5.8, 7.1, 6.3,\n",
       "       6.5, 7.6, 4.9, 7.3, 6.7, 7.2, 6.5, 6.4, 6.8, 5.7, 5.8, 6.4, 6.5,\n",
       "       7.7, 7.7, 6. , 6.9, 5.6, 7.7, 6.3, 6.7, 7.2, 6.2, 6.1, 6.4, 7.2,\n",
       "       7.4, 7.9, 6.4, 6.3, 6.1, 7.7, 6.3, 6.4, 6. , 6.9, 6.7, 6.9, 5.8,\n",
       "       6.8, 6.7, 6.7, 6.3, 6.5, 6.2, 5.9])"
      ]
     },
     "execution_count": 163,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "iris_data_array.max(axis = 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 164,
   "id": "67390d79-e2d7-4cf4-8210-bc48d09c34aa",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
       "       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
       "       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
       "       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
       "       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
       "       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
       "       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], dtype=int64)"
      ]
     },
     "execution_count": 164,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.argmax(iris_data_array, axis=1)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "eb0f6d73-c3a9-4871-89a1-45ff3ff8c660",
   "metadata": {},
   "source": [
    "### 最小值"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 201,
   "id": "77983c01-272e-4883-adc4-5ff055b38c90",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0"
      ]
     },
     "execution_count": 201,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "A_2D.min()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 202,
   "id": "9aabb50e-eaed-4b16-a598-136ef8f9a30e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0, 3, 0, 2, 1, 1])"
      ]
     },
     "execution_count": 202,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "A_2D.min(axis = 0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 204,
   "id": "922898d6-ce1a-4b65-afd9-32614a96c802",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize_1D(A_2D.min(axis = 0), '鸢尾花沿axis = 0，最小值', 0, 8)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 188,
   "id": "dac22399-fd15-414d-a462-2c2364f98e60",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([-7, -2,  3])"
      ]
     },
     "execution_count": 188,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "A_2D.min(axis = 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 206,
   "id": "e4d445c9-6c7f-4f53-93ba-b77baa2363a4",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize_1D(A_2D.min(axis = 1), '鸢尾花沿axis = 1，最小值', 0, 8)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 169,
   "id": "d3ac5a7c-8ae7-4804-a6c4-611e24c87520",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.1"
      ]
     },
     "execution_count": 169,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "iris_data_array.min()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 170,
   "id": "054cfb43-196b-4b3d-b8f7-548b2f716c3e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([4.3, 2. , 1. , 0.1])"
      ]
     },
     "execution_count": 170,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "iris_data_array.min(axis = 0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 172,
   "id": "5ad79272-5933-4e65-a788-e6bd1e2f39af",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize_1D(iris_data_array.min(axis = 0), '沿axis = 0，最小值', 0, 8)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 173,
   "id": "0a65104c-1828-4575-b7f0-94a8e787e8ae",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([13, 60, 22,  9], dtype=int64)"
      ]
     },
     "execution_count": 173,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.argmin(iris_data_array, axis=0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 174,
   "id": "f796156e-9411-4a66-89b4-e8473ba385ea",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0.2, 0.2, 0.2, 0.2, 0.2, 0.4, 0.3, 0.2, 0.2, 0.1, 0.2, 0.2, 0.1,\n",
       "       0.1, 0.2, 0.4, 0.4, 0.3, 0.3, 0.3, 0.2, 0.4, 0.2, 0.5, 0.2, 0.2,\n",
       "       0.4, 0.2, 0.2, 0.2, 0.2, 0.4, 0.1, 0.2, 0.2, 0.2, 0.2, 0.1, 0.2,\n",
       "       0.2, 0.3, 0.3, 0.2, 0.6, 0.4, 0.3, 0.2, 0.2, 0.2, 0.2, 1.4, 1.5,\n",
       "       1.5, 1.3, 1.5, 1.3, 1.6, 1. , 1.3, 1.4, 1. , 1.5, 1. , 1.4, 1.3,\n",
       "       1.4, 1.5, 1. , 1.5, 1.1, 1.8, 1.3, 1.5, 1.2, 1.3, 1.4, 1.4, 1.7,\n",
       "       1.5, 1. , 1.1, 1. , 1.2, 1.6, 1.5, 1.6, 1.5, 1.3, 1.3, 1.3, 1.2,\n",
       "       1.4, 1.2, 1. , 1.3, 1.2, 1.3, 1.3, 1.1, 1.3, 2.5, 1.9, 2.1, 1.8,\n",
       "       2.2, 2.1, 1.7, 1.8, 1.8, 2.5, 2. , 1.9, 2.1, 2. , 2.4, 2.3, 1.8,\n",
       "       2.2, 2.3, 1.5, 2.3, 2. , 2. , 1.8, 2.1, 1.8, 1.8, 1.8, 2.1, 1.6,\n",
       "       1.9, 2. , 2.2, 1.5, 1.4, 2.3, 2.4, 1.8, 1.8, 2.1, 2.4, 2.3, 1.9,\n",
       "       2.3, 2.5, 2.3, 1.9, 2. , 2.3, 1.8])"
      ]
     },
     "execution_count": 174,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "iris_data_array.min(axis = 1)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f983acd7-5434-4fdc-ba77-27c9db6a1afe",
   "metadata": {},
   "source": [
    "### 求和"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "d634129c-4738-4daa-965b-432fa49e310d",
   "metadata": {},
   "outputs": [],
   "source": [
    "iris_data_array.sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "feccf368-aaae-47e2-a651-b417c5b09d1d",
   "metadata": {},
   "outputs": [],
   "source": [
    "iris_data_array.sum(axis = 0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "d4d0fc1d-06ae-4d64-8ef7-7788608211e3",
   "metadata": {},
   "outputs": [],
   "source": [
    "iris_data_array.sum(axis = 1)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0823342f-6274-458b-ac96-5e24852c1778",
   "metadata": {},
   "source": [
    "### 平均值\n",
    "$${\\displaystyle \\mu ={\\frac {1}{n}}\\sum _{i=1}^{n}x_{i}.} $$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 215,
   "id": "512be22c-0daf-4cad-a5cd-d617f2da0c8b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "3.4644999999999997"
      ]
     },
     "execution_count": 215,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.average(iris_data_array)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 210,
   "id": "d499c594-9f33-46ae-9aba-385e2c130a06",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([5.84333333, 3.05733333, 3.758     , 1.19933333])"
      ]
     },
     "execution_count": 210,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.average(iris_data_array, axis = 0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 211,
   "id": "c5e95730-e5d0-4664-b7e8-81e310d1ca3c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([2.55 , 2.375, 2.35 , 2.35 , 2.55 , 2.85 , 2.425, 2.525, 2.225,\n",
       "       2.4  , 2.7  , 2.5  , 2.325, 2.125, 2.8  , 3.   , 2.75 , 2.575,\n",
       "       2.875, 2.675, 2.675, 2.675, 2.35 , 2.65 , 2.575, 2.45 , 2.6  ,\n",
       "       2.6  , 2.55 , 2.425, 2.425, 2.675, 2.725, 2.825, 2.425, 2.4  ,\n",
       "       2.625, 2.5  , 2.225, 2.55 , 2.525, 2.1  , 2.275, 2.675, 2.8  ,\n",
       "       2.375, 2.675, 2.35 , 2.675, 2.475, 4.075, 3.9  , 4.1  , 3.275,\n",
       "       3.85 , 3.575, 3.975, 2.9  , 3.85 , 3.3  , 2.875, 3.65 , 3.3  ,\n",
       "       3.775, 3.35 , 3.9  , 3.65 , 3.4  , 3.6  , 3.275, 3.925, 3.55 ,\n",
       "       3.8  , 3.7  , 3.725, 3.85 , 3.95 , 4.1  , 3.725, 3.2  , 3.2  ,\n",
       "       3.15 , 3.4  , 3.85 , 3.6  , 3.875, 4.   , 3.575, 3.5  , 3.325,\n",
       "       3.425, 3.775, 3.4  , 2.9  , 3.45 , 3.525, 3.525, 3.675, 2.925,\n",
       "       3.475, 4.525, 3.875, 4.525, 4.15 , 4.375, 4.825, 3.4  , 4.575,\n",
       "       4.2  , 4.85 , 4.2  , 4.075, 4.35 , 3.8  , 4.025, 4.3  , 4.2  ,\n",
       "       5.1  , 4.875, 3.675, 4.525, 3.825, 4.8  , 3.925, 4.45 , 4.55 ,\n",
       "       3.9  , 3.95 , 4.225, 4.4  , 4.55 , 5.025, 4.25 , 3.925, 3.925,\n",
       "       4.775, 4.425, 4.2  , 3.9  , 4.375, 4.45 , 4.35 , 3.875, 4.55 ,\n",
       "       4.55 , 4.3  , 3.925, 4.175, 4.325, 3.95 ])"
      ]
     },
     "execution_count": 211,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.average(iris_data_array, axis = 1)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a8126a14-742e-4ee3-8e3f-548b8b0989ee",
   "metadata": {},
   "source": [
    "### 方差\n",
    "$${\\displaystyle \\operatorname {Var} (X)={\\frac {1}{n - 1}}\\sum _{i=1}^{n}(x_{i}-\\mu )^{2}}$$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 212,
   "id": "ad1f8a2b-13b6-414e-ab00-e80d9171b7bb",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "3.896056416666667"
      ]
     },
     "execution_count": 212,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.var(iris_data_array)\n",
    "# 注意，NumPy中默认分母为n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c3328425-3497-43b7-882e-eeb04b885270",
   "metadata": {},
   "source": [
    "NumPy默认计算：\n",
    "$${\\displaystyle \\operatorname {Var} (X)={\\frac {1}{n}}\\sum _{i=1}^{n}(x_{i}-\\mu )^{2}}$$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 216,
   "id": "01e3d5c3-eab4-426e-8c2b-762b860478d8",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0.68112222, 0.18871289, 3.09550267, 0.57713289])"
      ]
     },
     "execution_count": 216,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.var(iris_data_array, axis = 0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 219,
   "id": "900c40c4-f885-4fb4-96b9-f9019b30cd0e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0.68569351, 0.18997942, 3.11627785, 0.58100626])"
      ]
     },
     "execution_count": 219,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.var(iris_data_array, axis = 0, ddof = 1)\n",
    "# 将分母设为n - 1"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8001ed3e-0f9d-4d16-a4a4-5658a8ff2169",
   "metadata": {},
   "source": [
    "### 标准差"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 220,
   "id": "c9c3293a-fc92-4c82-88a0-e230a90b6948",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0.82530129, 0.43441097, 1.75940407, 0.75969263])"
      ]
     },
     "execution_count": 220,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.std(iris_data_array, axis = 0)\n",
    "# 注意，NumPy中默认分母为n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3c3ab80c-a0f5-4b44-8c50-c0579a3576de",
   "metadata": {},
   "source": [
    "### 协方差矩阵"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 225,
   "id": "64456392-a8b3-4ad2-95db-2059437e2958",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 0.68569351, -0.042434  ,  1.27431544,  0.51627069],\n",
       "       [-0.042434  ,  0.18997942, -0.32965638, -0.12163937],\n",
       "       [ 1.27431544, -0.32965638,  3.11627785,  1.2956094 ],\n",
       "       [ 0.51627069, -0.12163937,  1.2956094 ,  0.58100626]])"
      ]
     },
     "execution_count": 225,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.cov(iris_data_array.T, ddof = 1)\n",
    "# 注意转置"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 231,
   "id": "39b41977-950c-497c-b383-fbf160ff69f4",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 500x500 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "\n",
    "fig, ax = plt.subplots(figsize = (5,5))\n",
    "sns.heatmap(np.cov(iris_data_array.T, ddof = 1),   \n",
    "            cmap = 'RdYlBu_r', # 指定色谱\n",
    "            annot = True,      # 注释\n",
    "            ax = ax,           # 指定轴\n",
    "            fmt = \".2f\",       # 注释数值的格式\n",
    "            square = True,     # 热图方格为正方形\n",
    "            xticklabels = [],  # 不显示横轴标签\n",
    "            yticklabels = [],  # 不显示纵轴标签\n",
    "            cbar = True)       # 显示色谱条\n",
    "\n",
    "fig.savefig('Figures/鸢尾花数据协方差矩阵.svg', format='svg')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3223aab6-f0d0-4162-b234-3d824c361c24",
   "metadata": {},
   "source": [
    "### 相关性系数矩阵"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 227,
   "id": "36a099a8-a62a-472e-a6ec-a22df3250e27",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 1.        , -0.11756978,  0.87175378,  0.81794113],\n",
       "       [-0.11756978,  1.        , -0.4284401 , -0.36612593],\n",
       "       [ 0.87175378, -0.4284401 ,  1.        ,  0.96286543],\n",
       "       [ 0.81794113, -0.36612593,  0.96286543,  1.        ]])"
      ]
     },
     "execution_count": 227,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.corrcoef(iris_data_array.T)\n",
    "# 注意转置"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 232,
   "id": "72ceb537-dd33-40c6-86a6-88325fa94b85",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 500x500 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "\n",
    "fig, ax = plt.subplots(figsize = (5,5))\n",
    "sns.heatmap(np.corrcoef(iris_data_array.T),   \n",
    "            cmap = 'RdYlBu_r', # 指定色谱\n",
    "            annot = True,      # 注释\n",
    "            ax = ax,           # 指定轴\n",
    "            fmt = \".2f\",       # 注释数值的格式\n",
    "            square = True,     # 热图方格为正方形\n",
    "            xticklabels = [],  # 不显示横轴标签\n",
    "            yticklabels = [],  # 不显示纵轴标签\n",
    "            cbar = True)       # 显示色谱条\n",
    "\n",
    "fig.savefig('Figures/鸢尾花数据相关性系数矩阵.svg', format='svg')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "da9ae719-b1d6-4f5e-b559-4b8dfed4d528",
   "metadata": {},
   "source": [
    "请大家自行学习如下函数：  \n",
    "numpy.percentile()  \n",
    "numpy.quantile()  \n",
    "numpy.median()   \n",
    "numpy.nanmean()  \n",
    "numpy.nanmedian()  \n",
    "numpy.nanstd()  \n",
    "numpy.nanvar()  "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "042a86cc-f750-4081-a2ab-65f0fe5d18ad",
   "metadata": {},
   "source": [
    "## 参考阅读"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "81862b64-94b1-4ff5-8e21-019067c7116d",
   "metadata": {},
   "source": [
    "关于广播原则，请参考：  \n",
    "https://numpy.org/doc/stable/user/basics.broadcasting.html  \n",
    "有关数学函数，请参考：  \n",
    "https://numpy.org/doc/stable/reference/routines.math.html  \n",
    "有关统计函数，请参考：  \n",
    "https://numpy.org/doc/stable/reference/routines.statistics.html  \n",
    "有关逻辑函数，请参考：  \n",
    "https://numpy.org/doc/stable/reference/routines.logic.html  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "2a76d332-aee9-4e69-b1d7-20b5eac340a5",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Repo: https://github.com/Visualize-ML\n",
    "# Book 1 Python for Beginners  |  From Basic Arithmetic to Machine Learning\n",
    "# Published and copyrighted by Tsinghua University Press\n",
    "# Beijing, China, 2023"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
